Mercurial > hg > Papers > 2018 > tobaru-thesis
changeset 0:cca1d0bf491c
rm chapter CbC GearsOS
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MindMap/GearsOS on Raspberry Pi.mm Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,46 @@ +<map version="1.0.1"> +<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net --> +<node CREATED="1516701429407" ID="ID_1051195830" MODIFIED="1516701442043" TEXT="GearsOS on Raspberry Pi"> +<node CREATED="1516701522709" ID="ID_256489663" MODIFIED="1516701571126" POSITION="right" TEXT="Gears"> +<node CREATED="1516702085792" ID="ID_1258099700" MODIFIED="1516702089918" TEXT="CodeGear"/> +<node CREATED="1516702092813" ID="ID_1153789198" MODIFIED="1516702095936" TEXT="DataGear"/> +</node> +<node CREATED="1516702165765" ID="ID_888886344" MODIFIED="1516702167854" POSITION="right" TEXT="CbC"> +<node CREATED="1516702170043" ID="ID_1790210342" MODIFIED="1516702175339" TEXT="LLVM/Clang"/> +</node> +<node CREATED="1516701621433" ID="ID_661863984" MODIFIED="1516702308395" POSITION="right" TEXT="Compile"> +<node CREATED="1516701719057" ID="ID_1783094022" MODIFIED="1516702316557" TEXT="RaspberryPi"> +<node CREATED="1516702179199" ID="ID_659553141" MODIFIED="1516702208394" TEXT="メモリが小さく時間がかかる"/> +</node> +<node CREATED="1516701806352" ID="ID_165282088" MODIFIED="1516702328038" TEXT="CrossCompile"> +<node CREATED="1516702331294" ID="ID_1401511924" MODIFIED="1516702347472" TEXT="Linux(DALMORE)"> +<node CREATED="1516702364144" ID="ID_5720869" MODIFIED="1516702368049" TEXT="Xv6"> +<node CREATED="1516702445942" ID="ID_531879349" MODIFIED="1516702460511" TEXT="RaspberryPiに移植できる"/> +<node CREATED="1516702484524" ID="ID_1376923002" MODIFIED="1516702489604" TEXT="x86"/> +<node CREATED="1516706062006" ID="ID_351150592" MODIFIED="1516706065815" TEXT="Debug"/> +</node> +<node CREATED="1516703067278" ID="ID_1712024870" MODIFIED="1516703071125" TEXT="実装"> +<node CREATED="1516703073464" ID="ID_469950594" MODIFIED="1516703076454" TEXT="LLVM"/> +<node CREATED="1516703078125" ID="ID_1889485002" MODIFIED="1516703089129" TEXT="GCC"/> +</node> +</node> +<node CREATED="1516702351534" ID="ID_1085435937" MODIFIED="1516702360335" TEXT="OSX(firefly)"> +<node CREATED="1516702385881" ID="ID_604989659" MODIFIED="1516702395723" TEXT="Armのコードは生成できた"/> +<node CREATED="1516702410163" ID="ID_701389172" MODIFIED="1516702424816" TEXT="machh-oのローダーを作れば動く"/> +<node CREATED="1516703139319" ID="ID_1676408792" MODIFIED="1516703141661" TEXT="実装"> +<node CREATED="1516703143513" ID="ID_1763624582" MODIFIED="1516703146104" TEXT="LLVM"/> +<node CREATED="1516703148385" ID="ID_1587888036" MODIFIED="1516703150889" TEXT="GCC"/> +</node> +</node> +</node> +</node> +<node CREATED="1516703243528" ID="ID_1207201532" MODIFIED="1516703360764" POSITION="right" TEXT="速度検証"> +<node CREATED="1516703252007" ID="ID_61806467" MODIFIED="1516703260348" TEXT="RaspberryPi"/> +<node CREATED="1516703262294" ID="ID_1190696824" MODIFIED="1516703283532" TEXT="Linux(DALMORE)"/> +<node CREATED="1516703285266" ID="ID_1909951605" MODIFIED="1516703334946" TEXT="OSX(firefly)"/> +</node> +<node CREATED="1516704649203" HGAP="14" ID="ID_1897135035" MODIFIED="1516704980644" POSITION="right" TEXT="研究目的" VSHIFT="-50"> +<node CREATED="1516704656572" ID="ID_5944722" MODIFIED="1516704775914" TEXT="RaspberryPi上でも信頼性があり、並列実行できるプログラムを動かせるようになりたい"/> +</node> +</node> +</map>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/Makefile Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,36 @@ +# Created by Daichi Toma on Nov 16, 2011 + +TARGET=main + +LATEX=platex +BIBTEX=pbibtex +DVIPDF=dvipdfmx +#You need setting "-l" option if You think You get a landscape PDF +#DVIPDF_OPT=-l + +#Embed fonts +#DVIPDF_OPT=-f hiraginoEmbed.map + +.SUFFIXES: .tex .dvi .pdf + +.tex.dvi: + $(LATEX) $< + $(BIBTEX) $(TARGET) + $(LATEX) $< + $(LATEX) $< + +.dvi.pdf: + $(DVIPDF) $(DVIPDF_OPT) $< + + +all: $(TARGET).pdf + open $(TARGET).pdf + +dvi: $(TARGET).dvi + +pdf: $(TARGET).pdf + + +clean: + rm -f *.dvi *.aux *.log *.pdf *.ps *.gz *.bbl *.blg *.toc *~ *.core +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/bibliography.tex Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,14 @@ +% 参考文献 +\def\line{−\hspace*{-.7zw}−} + +\begin{thebibliography}{99} +%\bibitem{*}内の * は各自わかりやすい名前などをつけて、 +%論文中には \cite{*} のように使用する。 +%これをベースに書き換えた方が楽かも。 +%書籍、論文、URLによって若干書き方が異なる。 +%URLを載せる人は参考にした年月日を最後に記入すること。 + + +\bibitem{hoge} +hoge +\end{thebibliography}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/dummy.tex Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,60 @@ +%%% jdummy.def +% +\DeclareRelationFont{JY1}{mc}{it}{}{OT1}{cmr}{it}{} +\DeclareRelationFont{JT1}{mc}{it}{}{OT1}{cmr}{it}{} +\DeclareFontShape{JY1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{mc}{sl}{}{OT1}{cmr}{sl}{} +\DeclareRelationFont{JT1}{mc}{sl}{}{OT1}{cmr}{sl}{} +\DeclareFontShape{JY1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{mc}{sc}{}{OT1}{cmr}{sc}{} +\DeclareRelationFont{JT1}{mc}{sc}{}{OT1}{cmr}{sc}{} +\DeclareFontShape{JY1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmbx}{it}{} +\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmbx}{it}{} +\DeclareFontShape{JY1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{sl}{}{OT1}{cmbx}{sl}{} +\DeclareRelationFont{JT1}{gt}{sl}{}{OT1}{cmbx}{sl}{} +\DeclareFontShape{JY1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{sc}{}{OT1}{cmbx}{sc}{} +\DeclareRelationFont{JT1}{gt}{sc}{}{OT1}{cmbx}{sc}{} +\DeclareFontShape{JY1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmr}{it}{} +\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmr}{it}{} +\DeclareFontShape{JY1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\endinput +%%%% end of jdummy.def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/future.tex Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,1 @@ +\chapter{今後の課題}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/jlisting.sty Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,216 @@ +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2006/02/20} +\def\fileversion{0.2} +\ProvidesPackage{jlisting}[\filedate\space\fileversion\space(Thor)] +% +\newcount\lst@nextchar +\let\lst@@ProcessSpace\lst@ProcessSpace +\def\lst@ProcessSpace#1{% + \lst@check@chartype{#1}% + \lst@@ProcessSpace + \lst@whitespacetrue} +\let\lst@@ProcessLetter\lst@ProcessLetter +\def\lst@ProcessLetter#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessLetter{#1}}% + \relax} +\let\lst@@ProcessDigit\lst@ProcessDigit +\def\lst@ProcessDigit#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessDigit{#1}}% + \relax} +\let\lst@@ProcessOther\lst@ProcessOther +\def\lst@ProcessOther#1#2{% + \lst@check@chartype{#2}% + {\lst@@ProcessOther{#1}}% + \relax} +\let\lst@@ProcessTabulator\lst@ProcessTabulator +\def\lst@ProcessTabulator#1{% + \lst@check@chartype{#1}% + \lst@@ProcessTabulator + \relax} +\def\lst@check@chartype#1#2#3{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + #2% + \ifnum\lst@nextchar<\@cclvi + #3% + \else + \lst@ifletter \else \lst@OutputOther \fi + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@AppendJchar#1#2{% + \lst@check@chartype{#2}% + {\advance\lst@length\@ne\lst@Append{#1}}% + \relax} +\def\lst@check@chartype@BOL#1{% + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \afterassignment\remove@to@nnil + \@tempa\@nnil + \ifnum\lst@nextchar<\@cclvi\else + \lst@whitespacefalse + \expandafter\lst@AppendJchar + \fi + #1} +\def\lst@InputListing#1{% + \begingroup + \lsthk@PreSet \gdef\lst@intname{#1}% + \expandafter\lstset\expandafter{\lst@set}% + \lsthk@DisplayStyle + \catcode\active=\active + \lst@Init\relax \let\lst@gobble\z@ + \lst@SkipToFirst + \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}% + \else \let\lst@next\@empty + \fi + \lst@next + \lst@DeInit + \endgroup} +\newread\lst@inputfile +\def\lst@get@filecontents#1{% + \let\lst@filecontents\@empty + \openin\lst@inputfile=#1\relax + \let\@lst@get@filecontents@prevline\relax + \lst@get@filecontents@loop + \closein\lst@inputfile + \lst@filecontents\empty} +\def\lst@get@filecontents@loop{% + \read\lst@inputfile to\@lst@get@filecontents@currline + \ifx\@lst@get@filecontents@prevline\relax\else + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\lst@filecontents + \expandafter\expandafter\expandafter{% + \expandafter\lst@filecontents\@lst@get@filecontents@prevline}% + \fi + \let\@lst@get@filecontents@prevline\@lst@get@filecontents@currline + \ifeof\lst@inputfile\else + \expandafter\lst@get@filecontents@loop + \fi} +%%% [$B$3$N=hM}$b!$AjEv6/0z$G$9!%(B] +\def\lst@BOLGobble{% + \ifnum\lst@gobble>\z@ + \@tempcnta\lst@gobble\relax + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi} +\def\lst@BOLGobble@#1{% + \let\lst@next#1% + \ifx \lst@next\relax\else + \ifx \lst@next\lst@MProcessListing\else + \ifx \lst@next\lst@ProcessFormFeed\else + \ifx \lst@next\lstenv@backslash + \let\lst@next\lstenv@BOLGobble@@ + \else + \let\lst@next\lst@BOLGobble@@ + \ifx #1\lst@ProcessTabulator + \advance\@tempcnta-\lst@tabsize\relax + \ifnum\@tempcnta<\z@ + \lst@length-\@tempcnta \lst@PreGotoTabStop + \fi + \else + \edef\@tempa{\lst@nextchar=`\string#1\relax}% + \@tempa + \ifnum\lst@nextchar<\@cclvi\else + \advance\@tempcnta\m@ne + \fi + \advance\@tempcnta\m@ne + \fi + \fi \fi \fi \fi + \lst@next} +\def\lst@BOLGobble@@{% + \ifnum\@tempcnta>\z@ + \expandafter\lst@BOLGobble@ + \else + \expandafter\lst@check@chartype@BOL + \fi +} +% +% \begin{$B=$@5;v9`(B}{1.3} +% $B$A$g$C$H$7$?=$@5(B +\gdef\lst@breakProcessOther#1{\lst@ProcessOther#1} +% $B%=!<%9%3!<%IL\<!$K$*$1$kJ8;z$HHV9f$N6u$-(B +\let \l@lstlisting = \l@figure +% $B%-%c%W%7%g%s$H%=!<%9%3!<%IL\<!$KBP$9$kF|K\8lBP1~(B +\def\lstlistingname{$B%=!<%9%3!<%I(B} +\def\lstlistlistingname{$B%=!<%9%3!<%IL\<!(B} +% \end{$B=$@5;v9`(B} +\endinput +% +%#!platex +\documentclass[papersize]{jsarticle} +% Macros +\IfFileExists{dvipdfmx.def}{% + \usepackage[dvipdfmx]{color,graphicx}% +}{% + \usepackage[dvipdfm]{color,graphicx}% +} +\usepackage{listings}[2004/09/07] +\usepackage{jlisting}[2006/02/20] +\usepackage{url} +\usepackage{verbatim} + +\makeatletter +% Original Macros +\def\email#1{\gdef\@email{\texttt{#1}}} +\def\homepage#1{\gdef\@homepage{\texttt{#1}}} +\def\mac#1{\textsf{#1}} +\def\URL#1{\texttt{#1}} +\def\src#1{\texttt{#1}} + +% Dvipdfmx.def +\def\dvipdfmxDefi{http://tex.dante.jp/ok/dvipdfmx/} +\def\dvipdfmxDefii{http://ftp.ktug.or.kr/KTUG/dvipdfmx/contrib/latex/} + +\IfFileExists{dvipdfmx.def}{% + \let \IfDvipdfmxDef = \empty \relax}{% + \typeout{^^Jget dvipdfmx.def at \dvipdfmxDefi^^J + or \dvipdfmxDefii^^J}% + \def\IfDvipdfmxDef{Get \src{dvipdfmx.def} at \URL \dvipdfmxDefii \\ + or \URL \dvipdfmxDefi.}% +} + +% Author Info +\author {Th\'or Watanabe\thanks \@email \space \thanks \@homepage} +\title {\mac{jlisting.sty}\\ + ---Japanese Localized Patch File of \mac{listings}---} +\email {thor@tex.dante.jp} +\homepage {http://tex.dante.jp/typo/} +\date {2006/02/20} + +\makeatother + +\begin{document} +\maketitle +%\IfDvipdfmxDef + +\section{$B$A$g$C$H$7$?@bL@(B}% Short Description + +$B1|B<@2I';a$N7G<(HD$N!VHFMQE*$JIbF0BN!W$H$$$&0lO"$N=q$-9~$_$+$i(B +$BE>:\$7$^$7$?!#(B + +\begin{quote} + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21172.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21184.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21189.html}\\ + \url{http://http://cise.edu.mie-u.ac.jp/~okumura/texfaq/qa/21197.html} +\end{quote} + + Copyright $B$O5H1JE/H~;a$K$"$k$N$@$H;W$$$^$9!%(B + +\section{$B99?7MzNr(B}% ChageLogs + +\begin{description} + \item[ver.~0.1 (2004/03/24)] + $B$H$j$"$($:8x3+!%(B + \item[ver.~0.2 (2006/02/20)] + \verb|\lst@breakProcessOther| $BL?Na$NDj5A$NDI2C!%(B +\end{description} + +\section{$B%=!<%9%3!<%I(B} +\par\narrowbaselines +\verbatiminput{jlisting.sty} +\end{document}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.aux Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,53 @@ +\relax +\@writefile{toc}{\contentsline {chapter}{\numberline {第1章}(序章)}{1}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:Introduction}{{1}{1}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}RaspberryPi上でのGearsOS}{2}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:rpiGears}{{2}{2}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}RaspberryPi上での実装}{3}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:rpi}{{3}{3}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}CbCのmake時間}{3}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}T図形}{3}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces T図形の例}}{4}} +\newlabel{fig:examples}{{3.1}{4}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Raspberry Pi}}{4}} +\newlabel{images:RaspberryPi}{{3.2}{4}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}CrossCompile}{5}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:CrossCompile}{{4}{5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}OSX}{6}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:OSX}{{5}{6}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}LLVM}{6}} +\newlabel{OSXCrossCompile}{{5.1}{6}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.1}CrossCompileの例}{6}} +\newlabel{OSXfile}{{5.2}{6}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {5.2}生成したファイル}{6}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces OSX}}{7}} +\newlabel{fig:OSX}{{5.1}{7}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}GCC}{7}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}Linux}{8}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}LLVM}{8}} +\@writefile{toc}{\contentsline {section}{\numberline {6.2}GCC}{8}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces OSX Linux VM}}{8}} +\newlabel{fig:OSX_Linux_VM}{{6.1}{8}} +\newlabel{LinuxCrossCompile}{{6.1}{9}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.1}LinuxでのCrossCompile}{9}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第7章}今後の課題}{10}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{chap:Task}{{7}{10}} +\@writefile{toc}{\contentsline {chapter}{謝辞}{11}} +\newlabel{chap:Acknowledgments}{{7}{11}} +\@writefile{toc}{\contentsline {chapter}{参考文献}{12}} +\newlabel{chap:References}{{7}{12}} +\@writefile{toc}{\contentsline {chapter}{付録}{13}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.lof Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,11 @@ +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsline {figure}{\numberline {3.1}{\ignorespaces T図形の例}}{4} +\contentsline {figure}{\numberline {3.2}{\ignorespaces Raspberry Pi}}{4} +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsline {figure}{\numberline {5.1}{\ignorespaces OSX}}{7} +\addvspace {10\p@ } +\contentsline {figure}{\numberline {6.1}{\ignorespaces OSX Linux VM}}{8} +\addvspace {10\p@ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.log Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,265 @@ +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 15 FEB 2018 18:54 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**main.tex +(./main.tex +pLaTeX2e <2016/05/07> (based on LaTeX2e <2016/03/31>) +Babel <3.9r> and hyphenation patterns for 83 language(s) loaded. +(/usr/local/texlive/2016/texmf-dist/tex/platex/base/jreport.cls +Document Class: jreport 2006/06/27 v1.6 Standard pLaTeX class +\c@@paper=\count81 +(/usr/local/texlive/2016/texmf-dist/tex/platex/base/jsize12.clo +File: jsize12.clo 2006/06/27 v1.6 Standard pLaTeX file (size option) +) +\c@part=\count82 +\c@chapter=\count83 +\c@section=\count84 +\c@subsection=\count85 +\c@subsubsection=\count86 +\c@paragraph=\count87 +\c@subparagraph=\count88 +\c@figure=\count89 +\c@table=\count90 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\symmincho=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `mincho' in version `bold' +(Font) JY1/mc/m/n --> JY1/gt/m/n on input line 669. +\toclineskip=\dimen118 +\@lnumwidth=\dimen119 +\bibindent=\dimen120 +\heisei=\count91 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks15 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2016/05/09 v1.0r Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/01/02 v1.10 sample graphics configuration +) +Package graphics Info: Driver file: dvipdfmx.def on input line 96. + +(/usr/local/texlive/2016/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def +File: dvipdfmx.def 2016/04/06 v4.08 LaTeX color/graphics driver for dvipdfmx (T +eX Live/ChoF) + +(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +\Gin@req@height=\dimen121 +\Gin@req@width=\dimen122 +) +(./mythesis.sty) +(/usr/local/texlive/2016/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen123 +) +(/usr/local/texlive/2016/texmf-dist/tex/platex/base/ascmac.sty +Package: ascmac 2016/04/15 v2.0b ascmac wrapper (community edition) + +(/usr/local/texlive/2016/texmf-dist/tex/platex/base/tascmac.sty +Package: tascmac 2016/04/15 v2.0b ascmac package (community edition) +\@savetbaselineshift=\dimen124 +\@saveybaselineshift=\dimen125 +\scb@x=\box41 +\scscb@x=\box42 +\@bw=\dimen126 +\@nbox=\box43 +\@nbody=\box44 +\@scw=\dimen127 +\@itemh=\dimen128 +\@iboxpos=\toks16 +\@iboxstr=\box45 +\@bwsp=\box46 +\@@bwsp=\box47 +\@bcal=\count92 +\shaderule=\dimen129 +)) +(/usr/local/texlive/2016/texmf-dist/tex/latex/here/here.sty) +(/usr/local/texlive/2016/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count93 +\float@exts=\toks17 +\float@box=\box48 +\@float@everytoks=\toks18 +\@floatcapt=\box49 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +\fancy@headwidth=\skip43 +\f@ncyO@elh=\skip44 +\f@ncyO@erh=\skip45 +\f@ncyO@olh=\skip46 +\f@ncyO@orh=\skip47 +\f@ncyO@elf=\skip48 +\f@ncyO@erf=\skip49 +\f@ncyO@olf=\skip50 +\f@ncyO@orf=\skip51 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count94 +\lst@gtempboxa=\box50 +\lst@token=\toks19 +\lst@length=\count95 +\lst@currlwidth=\dimen130 +\lst@column=\count96 +\lst@pos=\count97 +\lst@lostspace=\dimen131 +\lst@width=\dimen132 +\lst@newlines=\count98 +\lst@lineno=\count99 +\lst@maxwidth=\dimen133 + +(/usr/local/texlive/2016/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) +\c@lstnumber=\count100 +\lst@skipnumbers=\count101 +\lst@framebox=\box51 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2015/06/04 1.6 listings configuration +)) +Package: listings 2015/06/04 1.6 (Carsten Heinz) + +(./jlisting.sty +Package: jlisting 2006/02/20 0.2 (Thor) +\lst@nextchar=\count102 +\lst@inputfile=\read1 +) +(/usr/local/texlive/2016/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2015/06/04 1.6 listings language file +) +(./main.aux) +\openout1 = `main.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for JY1/mc/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for JT1/mc/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +\c@lstlisting=\count103 +File: fig/ryukyu.pdf Graphic file (type pdf) + <fig/ryukyu.pdf> [0 + +] +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <24.88> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 62. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <24.88> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 62. + (./main.toc +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <12> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 1. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <12> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 1. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 4. +) +\tf@toc=\write3 +\openout3 = `main.toc'. + + [1 + +] (./main.lof) +\tf@lof=\write4 +\openout4 = `main.lof'. + + [2 + +] (./main.lot) +\tf@lot=\write5 +\openout5 = `main.lot'. + + [3 + +] +第 1 章 +[1 + +] +第 2 章 +[2 + +] +第 3 章 +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <17.28> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 207. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <17.28> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 207. +File: images/examples_2.pdf Graphic file (type pdf) +<images/examples_2.pdf> [3 + +] +File: images/RaspberryPi_2.pdf Graphic file (type pdf) + <images/RaspberryPi_2.pdf> [4] +第 4 章 +[5 + +] +第 5 章 +LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <10> not available +(Font) Font shape `JT1/gt/m/n' tried instead on input line 298. +LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <10> not available +(Font) Font shape `JY1/gt/m/n' tried instead on input line 298. +LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10> not available +(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 298. +[6 + +] +File: images/OSX_2.pdf Graphic file (type pdf) + <images/OSX_2.pdf> [7] +第 6 章 +File: images/OSX_Linux_VM_2.pdf Graphic file (type pdf) +<images/OSX_Linux_VM_2.pdf> [8 + +] [9] +第 7 章 +[10 + +] [11 + +] [12 + +] [13 + +] (./main.aux) ) +Here is how much of TeX's memory you used: + 2606 strings out of 493693 + 35503 string characters out of 6149787 + 162239 words of memory out of 5000000 + 6139 multiletter control sequences out of 15000+600000 + 14788 words of font info for 59 fonts, out of 8000000 for 9000 + 929 hyphenation exceptions out of 8191 + 27i,8n,43p,326b,1644s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on main.dvi (17 pages, 18176 bytes).
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.lot Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,7 @@ +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.tex Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,441 @@ +\documentclass[a4j,12pt]{jreport} +\usepackage[dvipdfmx]{graphicx} +\usepackage{mythesis} +\usepackage{multirow} +\usepackage{ascmac} +\usepackage{here} +\usepackage{url} +\usepackage{fancyhdr} +\usepackage{float} +\usepackage{listings, jlisting} +%% \input{dummy} %% font + +\lstset{ + language=java, + tabsize=2, + frame=single, + basicstyle={\ttfamily\footnotesize},% + identifierstyle={\footnotesize},% + commentstyle={\footnotesize\itshape},% + keywordstyle={\footnotesize\bfseries},% + ndkeywordstyle={\footnotesize},% + stringstyle={\footnotesize\ttfamily}, + breaklines=true, + captionpos=b, + columns=[l]{fullflexible},% + xrightmargin=0zw,% + xleftmargin=1zw,% + aboveskip=1zw, + numberstyle={\scriptsize},% + stepnumber=1, + numbersep=0.5zw,% + lineskip=-0.5ex, + numbers=left +} +\renewcommand{\lstlistingname}{Code} + +\setlength{\itemsep}{-1zh} + +\title{GearsOS on Raspberry Pi} +\icon{ + \includegraphics[width=80mm,bb=0 0 595 642]{fig/ryukyu.pdf} %%元は 642じゃなくて842 +} +\year{平成30年度 卒業論文} +\belongto{琉球大学工学部情報工学科} +\author{145759E 桃原 優 \\ 指導教員 {河野 真治} } + +\makeatletter +\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}} +\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}} +\makeatother +\setlength\abovecaptionskip{0pt} + +\begin{document} + +% タイトル +\maketitle +\baselineskip 17pt plus 1pt minus 1pt + +\pagenumbering{roman} +\setcounter{page}{0} + +\tableofcontents % 目次 +\listoffigures % 図目次 +\listoftables % 表目次 + +%以下のように、章ごとに個別の tex ファイルを作成して、 +% main.tex をコンパイルして確認する。 +%章分けは個人で違うので下のフォーマットを参考にして下さい。 + +% はじめに + +% 1章では研究目的を書かない(もったいない) + + + + +\chapter{(序章)} +\pagenumbering{arabic} +問題提起\\ +研究目的はかかない + + +\label{chap:Introduction} + + +% + +%序論の目安としては1枚半ぐらい. +%英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも. + + + +% \chapter{CbC} +% Continuation based C(以下、CbC)は、本研究室で LLVM/Clang 上に実装した言語である。 + +% CbC は Code Segment 間を、goto によって継続的に遷移し処理を行っている。 +% その流れを図\ref{fig:CodeSegment} に示す。 + + + +% \begin{figure}[htpb] + % \begin{center} + % \scalebox{1}{\includegraphics{images/codesegment.pdf}} + % \end{center} + % \caption{goto による Code Segment 間の継続} + % \label{fig:CodeSegment} +% \end{figure} + +% \label{chap:CbC} + + +% \section{Code Segment} +% CbC は Code Segment を基本的な処理単位とする。C の関数とは異なり返り値を持たないが、 +% Code Segment の宣言は C の関数の構文と同じように行い、型に \_\_code を用いる。 + +% CbC は for 文や while 文といったループ制御構文を持たないので、 +% ループ処理は自分自身への再帰的な継続を行う事で実現する。 + +% 現在の Code Segment から次の Code Segment への移動は +% goto の後に Code Segment 名と引数を並べて記述する。この goto +% による処理の遷移を継続と呼ぶ。C と異なり、戻り値を持たない Code Segment +% ではスタックに値を積んで行く必要が無くスタックは変更されない。 +% このようなスタックに値を積まない継続を軽量継続と呼ぶ。この軽量継続により、 +% 並列化、ループ制御、関数コールとスタックの操作を意識した +% 最適化がソースコードレベルで行えるようになる。 + + + + +% \chapter{GearsOS} +% \label{chap:GearsOS} + + +% \section{GearsOS} +% 当研究室では、CodeSegmentとDataSegmentによって構成される +% GearsOSの開発を行っている。GearsOSは、並列プログラミングフレームワーク +% の Cerium と分散フレームワークの Alice の開発を通して得られた知見を元に +% 開発を進めている。 + +% Cerium はオブジェクト指向言語である C++ を用いて開発した並列プログラミング +% フレームワークである。Cell、マルチコアCPU、GPU を用いた並列実行をサポート +% している。並列処理の単位として Task を記述し、Task に他の Task との +% 依存関係を設定する事で並列実行を実現するが、データは汎用ポインタで Task に +% 渡されるため、データの依存関係を保証できない。データの正しさや依存関係を +% 保証できていないので、並列処理は行えるが、信頼性が低い。その知見から、 +% 並列分散処理 には Code の分割だけではなく Data の分割も必要である事が +% 分かった。 + +% Alice では処理の単位である、 Code Segment、データの単位である +% Data Segment を用いてプログラムを記述する。Code Segment は使用する Input Data Segment、Output Data Segment を指定することで処理とデータの依存関係を解決する。Gears OSでは、Gear という単位を用いてプログラムを Code Gear、Data Gear に細かく分割するが、これは Alice のCode Segment、Data Segment にそれぞれ対応する。\\ +% Gears OS では CbC を用いて Data Sement を定義し、 +% 実装を行っている。 + +% 当研究室で開発している Code Segment を処理単位とする プログラミング言語 +% CbC を用いて Data Segment を定義し、Gears OS の実装を行っている。 + + +% \section{Code Gear と Data Gear} +% Gears OS では、プログラムの単位として Gear を用いる。 +% Gear は並列実行の単位、データの分割、Gear 間の接続等になる。 + +% Code Gear はプログラムの処理そのものであり、任意の数の Data Gear を参照し、 +% 処理が完了すると任意の数の Data Gear に書き込む。Code Gear は接続された +% Data Gear 以外にアクセスできない。Code Segment と同じように Code Gear から +% 次の Code Gear への処理の移動は goto の後に Code Gear の名前と引数を指定する事で実現できる。 + +% Data Gear はデータそのものを表す。int や 文字列などの Primitive Data Type +% を持っている。Gear の特徴として処理やデータの構造が Code Gear、Data Gear +% に閉じている事にある。これにより、実行時間、メモリ使用量などを予測可能なものにすることができる。 + +\chapter{RaspberryPi上でのGearsOS} + + +当研究室では CbC(Continuation base C) とCbC を用いて実装する +GearsOS の研究を行っている。 + +CbC は Code Segment と Data Segment という単位でプログラムを記述する。 +Code Segment は並列処理の単位として利用でき、 +Data Segment はデータそのもので型を持っていて、 +CbC はメタレベルの処理,並列処理を記述することができる。 + +メタレベルの処理では、メモリ管理、スレッド管理、CPU や GPU の資源管理 +を記述することができる。 + +本研究では、ARM で動くシングルボードコンピュータである +Raspberry Pi 上で Gears OS を動かせるようになる事で、 +ハードウェア上でもメタレベルの処理、並列実行ができるプログラミング +を記述できるようになる事を目指している。 + +しかし、メモリの関係上 RaspberryPi 上で CbC の make を行うと、 +かなりの時間がかかる。 + +解決案として、OSX 上で CrossCompile を行う方法と、Linux 環境で +CrossCompile を行う方法を提案する。 + + + + +\label{chap:rpiGears} + + + +\chapter{RaspberryPi上での実装} + +\label{chap:rpi} + +\section{CbCのmake時間} +% Raspberry Pi の OS である Raspbian ではメモリが 256MB なので +% Raspberry Pi 上で直接 CbC をコンパイルするには時間がかかる。qemu によるメモリの拡張もできないので、別の手法で Raspberry Pi 上に CbC を実装する方が好ましい。 +Raspberry Pi 1 のメモリは 256MB と小さいため、 CbC をコンパイルすることができない。 +Raspberry Pi 3 だとメモリは 1GB あり CbC をコンパイルできるが、時間がかかる。 + + + +学科のサーバの一つでLinux環境であるDALMORE + +\begin{table}[htb] +\centering +\scalebox{1.5}[1.5]{ + \begin{tabular}{| c | r | r |} \hline + 環境(メモリ) & 時間 & 比較 \\ \hline \hline + RaspberryPi(1GB) & 15時間11分06秒 & 1.00倍 \\ \hline + OSX(16GB) & 2時間16分06秒 & 6.69倍 \\ \hline + Linux(500GB) & 2分26秒 & 374.42倍 \\ \hline + \end{tabular} + } +\end{table} + + + +% qemuによる拡張ができない原因 + + +\section{T図形} +CbC を Raspberry Pi で動かすためのアプローチの手法を、I と T の形をした +図の組み合わせによって説明を行う。I の上部分に cbclang や Xv6 などのソースコード名を、 +下部分にその機能の記述言語を記してある。T の下にある I は特別で、上に VM 下に VM を乗せている + OS が記されている。 T の上部分は左に入力されるファイル、右に出力されるその機能によって出力される + ファイルが記され、下部分にその機能の記述言語が記されている。 + +例として、cbclang のソースコード(I)と、 Raspberry Pi 上の clang (T) +を図\ref{fig:examples} に示す。 + +\begin{figure}[htpb] + \begin{center} + \scalebox{0.70}{\includegraphics{images/examples_2.pdf}} + \end{center} + \caption{T図形の例} + \label{fig:examples} +\end{figure} + +\break +Raspberry Pi でコンパイルを行うまでの過程を、図\ref{images:RaspberryPi}に示す。 + +\begin{figure}[htpb] + \begin{center} + \scalebox{0.30}{\includegraphics{images/RaspberryPi_2.pdf}} + \end{center} + \caption{Raspberry Pi} + \label{images:RaspberryPi} +\end{figure} + + +\break + + + +\chapter{CrossCompile} +\label{chap:CrossCompile} +OSX 上で CrossCompile する事で make 時間の問題を解決する方法がある。 +% CrossCompile とは、別の OS で実行可能なコードを生成するコンパイルの手法である。 +% つまり、OSX であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、そのコードを Raspberry Pi に移せばよい。\\ + CrossCompile とは、別の OS で実行可能なコードを生成するコンパイルの手法である。 + + +% この研究でOSX とLinuxそれぞれで LLVMとGCCのCrossCompileを行う説明 + +Raspberry Pi の OS である Rasbian が qemu によるメモリの拡張もできないので、 +別の手法で Raspberry Pi 上に CbC を実装する方が好ましい。 + + +\chapter{OSX} +\label{chap:OSX} + + +\section{LLVM} + +arm-linux-gnueabihf-gcc というツールチェーンを使用し、C で書かれたファイルを CrossCompile することで OSXで + ARM のコードを生成できる事を確認した。その際のコマンドをリスト\ref{OSXCrossCompile}に、生成されたファイルにfileコマンドで調べた結果をリスト\ref{OSXfile}に示す。 + \begin{lstlisting}[frame=lrbt,label=OSXCrossCompile,caption={CrossCompileの例}] + /usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc -g -o hello hello.c +\end{lstlisting} + + + \begin{lstlisting}[frame=lrbt,label=OSXfile,caption={生成したファイル}] +$ file hello +hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter +/lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, +BuildID[sha1]=a78af9ba00197d52a8ed7cbac433b24360c57283, not stripped +\end{lstlisting} + + +\break + + この時、出力は mach-o になるので、mach-o の + loader 作ることで CbC が動かせるようになる。 + + まだ実装できていないが、OSX 上で行えるためコンパイルの速度向上が望める。 +OSX 上で コンパイルを行うまでの過程を、図\ref{fig:OSX}に示す。 + +\begin{figure}[htpb] + \begin{center} + \scalebox{0.7}{\includegraphics{images/OSX_2.pdf}} + \end{center} + \caption{OSX} + \label{fig:OSX} +\end{figure} + + +\section{GCC} + +\break + +\chapter{Linux} +\section{LLVM} + + +\section{GCC} + +CrossCompile と別に Linux 環境で CbC を動かした後に、Raspberry Pi に載せる手法がある。 + + Linux の LLVM でコンパイルすることができれば elf のコードを書けるようになるので、 + elf のloader を作る事で、CbC を動かすことができる。 + + また、Linux 用の gcc を CbC に書き直す際に、gcc7 に書き直せば linker がそのまま使えるので、 + Xv6 で動くようになる。 + + Xv6とは、マサチューセッツ工科大の大学院生向け講義の教材として使うために、UNIX V6 という OS を + ANSI-C に書き換え、x86に移植した OS である。 +Xv6 は Raspberry Pi に移植する事ができる。ANSI-C で書かれている Xv6 を CbC に書き直す事で、 +Raspberry Pi で CbC を動かせるようになる。 + + Linux 上 で LLVM がコンパイルできない原因はまだ分かってないが、 + メモリを上げる事でこの方法でもコンパイルの速度向上が望める。 +Linux 上で コンパイルを行うまでの過程を、図\ref{fig:OSX_Linux_VM}に示す。 + +\begin{figure}[htpb] + \begin{center} + \scalebox{0.8}{\includegraphics{images/OSX_Linux_VM_2.pdf}} + \end{center} + \caption{OSX Linux VM} + \label{fig:OSX_Linux_VM} +\end{figure} + +% Xv6詳しく + + + \begin{lstlisting}[frame=lrbt,label=LinuxCrossCompile,caption={LinuxでのCrossCompile}] + ./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm -I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/ hello.c -c -mfloat-abi=hard +\end{lstlisting} + + +\chapter{今後の課題} +\label{chap:Task} + +Xv6 で CbC が動くようになれば、Raspberry Pi 以外のハードウェアでの実装も容易になるので、Linux 上での実装を目指して研究を進めていく。Xv6 で CbC が動けば、続けて Linux 上で Gears OS の実装も行なっていく。 + + + + +\break + + + +% \addcontentsline{toc}{chapter}{謝辞} +\chapter*{謝辞} + \addcontentsline{toc}{chapter}{謝辞} +\label{chap:Acknowledgments} + + +%基本的な内容は以下の通り.参考にしてみて下さい. +%厳密な決まりは無いので,個々人の文体でも構わない. +%GISゼミや英語ゼミに参加した人はその分も入れておく. +%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) + +\hspace{1zw} + + + + + +\chapter*{参考文献} +\addcontentsline{toc}{chapter}{参考文献} +\label{chap:References} + + +%\bibitem{*}内の * は各自わかりやすい名前などをつけて、 +%論文中には \cite{*} のように使用する。 +%これをベースに書き換えた方が楽かも。 +%書籍、論文、URLによって若干書き方が異なる。 +%URLを載せる人は参考にした年月日を最後に記入すること。 + +% \begin{thebibliography} + +% \bibitem{cbc} +% {徳森 海斗, 河野真治}: LLVM Clang 上の Continuation based C コンパイラの改良 +% , 琉球大学工学部情報工学科平成 27 年度学位論文(修士) (2015). + +% \end{thebibliography} + + +% \addcontentsline{toc}{chapter}{付録} +\chapter*{付録} + \addcontentsline{toc}{chapter}{付録} + + + + + + + + + + +\end{document} + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.toc Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,16 @@ +\contentsline {chapter}{\numberline {第1章}(序章)}{1} +\contentsline {chapter}{\numberline {第2章}RaspberryPi上でのGearsOS}{2} +\contentsline {chapter}{\numberline {第3章}RaspberryPi上での実装}{3} +\contentsline {section}{\numberline {3.1}CbCのmake時間}{3} +\contentsline {section}{\numberline {3.2}T図形}{3} +\contentsline {chapter}{\numberline {第4章}CrossCompile}{5} +\contentsline {chapter}{\numberline {第5章}OSX}{6} +\contentsline {section}{\numberline {5.1}LLVM}{6} +\contentsline {section}{\numberline {5.2}GCC}{7} +\contentsline {chapter}{\numberline {第6章}Linux}{8} +\contentsline {section}{\numberline {6.1}LLVM}{8} +\contentsline {section}{\numberline {6.2}GCC}{8} +\contentsline {chapter}{\numberline {第7章}今後の課題}{10} +\contentsline {chapter}{謝辞}{11} +\contentsline {chapter}{参考文献}{12} +\contentsline {chapter}{付録}{13}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/mythesis.sty Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,156 @@ +% +% 卒業論文スタイルファイル(mythesis.sty) +% version 1.0e +% +% ver 1.0e 02/07/2000 since +% usage: + +%\documentclass[a4j]{jreport} +%\usepackage{master_paper} +% +% +%\title{卒論タイトル \\ 長い} +%\etitle{\pLaTeX2e style test file for Teri's thesis } +%\year{平成11年度} +%\belongto{琉球大学大学工学部\\ 情報工学科} +%\author{豊平 絵梨} +% +%\begin{document} +% +%\maketitle +% +%%要旨 +%\input{abstract.tex} +% +%%目次 +%\tableofcontents +% +%%図目次 +%\listoffigures +% +%%表目次 +%\listoftables +% +%%第一章 +%\input{chapter1.tex} +%%chapter1.texの\chapter{}の後ろに次のコマンドを追加してください。 +%%ページカウントがリセットされ、ページ数がアラビア文字になります。 +%% \pagenumbering{arabic} +%%第二章 +%\input{chapter2.tex} +%%第三章 +%\input{chapter3.tex} +% +%%付録 +%\input{appendix.tex} +% +%%謝辞 +%%\input{thanx.tex} +% +%%参考文献 +%\input{biblography.tex} +% +%\end{document} + + +%長さ設定 +%\setlength{\topmargin}{-30mm} +%\addtolength{\oddsidemargin}{-15mm} +%\addtolength{\textwidth}{60mm} + +\topmargin -1in \addtolength{\topmargin}{35mm} +\headheight 0mm +\headsep 0mm +\oddsidemargin -1in \addtolength{\oddsidemargin}{30mm} +%\evensidemargin -1in \addtolength{\evensidemargin}{8mm} +\textwidth 160mm +\textheight 230mm +%\footheight 0mm +%\footskip 0mm +%\pagestyle{empty} + + +%年度 +\def\@year{} +\def\year#1{\gdef\@year{#1}} +%英文タイトル +\def\@etitle{} +\def\etitle#1{\gdef\@etitle{#1}} +%アイコン +\def\@icon{} +\def\icon#1{\gdef\@icon{#1}} +%所属 +\def\@belongto{} +\def\belongto#1{\gdef\@belongto{#1}} + +%表紙 +\renewcommand{\maketitle}{% +\newpage\null +\thispagestyle{empty} +\vskip 0cm% +\begin{center}% +\let\footnote\thanks + {\huge \@year \par}% + \vskip 3em% + {\Huge \@title \par}% + \vskip 1em% + {\huge \@etitle \par}% + \vskip 8em% + {\huge \@icon \par}% + \vskip 0.5em% + {\huge \@belongto \par}% + \vskip 1.0em% + {\huge \@author \par}% + +\end{center}% +\par\vskip 1.5em +} + + +%abstract +\renewenvironment{abstract}{% + \titlepage + \thispagestyle{empty} + \null\vfil + \@beginparpenalty\@lowpenalty + {\Huge \bfseries \abstractname}% + \begin{center}% + \@endparpenalty\@M + \end{center} +}% + + +%目次 +\renewcommand{\tableofcontents}{% + \pagestyle{plain} + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + } \pagenumbering{roman}\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} + +%章 +\renewcommand{\chapter}{% + \pagestyle{plain} + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} + + +\renewcommand{\prepartname}{} %\renewcommand{\prepartname}{第} +\renewcommand{\postpartname}{部} +\renewcommand{\prechaptername}{第}%\renewcommand{\prechaptername}{第} +\renewcommand{\postchaptername}{章} +\renewcommand{\contentsname}{目 次} +\renewcommand{\listfigurename}{図 目 次} +\renewcommand{\listtablename}{表 目 次} +\renewcommand{\bibname}{参考文献} +\renewcommand{\indexname}{索 引} +\renewcommand{\figurename}{図} +\renewcommand{\tablename}{表} +\renewcommand{\appendixname}{付 録} +\renewcommand{\abstractname}{要 旨}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/reference.bib Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,68 @@ +@Misc{minecraft, + author = "MicroSoft", + howpublished = "\url{https://minecraft.net/ja-jp/}" +} + +@Misc{jungle, + author = "Shoshi Tamaki, Seiyu Tani, Shinji Kono", + title = "Cassandraを使ったスケーラビリティのあるCMSの設計", + year = 2011, + journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会", +} + +@Misc{nosql, + author = "PETTER NÄSHOLM", + title = "Extracting Data from NoSQL Databases", + month = "jan", + year = 2012 +} + +@Misc{gamedata, + author = "{Hitonishi Masaki}", + title = "ゲームエンジニアのためのデータベース設計", + howpublished = "\url{http://www.slideshare.net/sairoutine/ss-62485460}" + +} + +@article{gamedata2, + author = "{Ryosuke Iwanaga}", + title = "ソーシャルゲームのためのMySQL入門", + howpublished = "\url{http://engineer.dena.jp/2010/11/mysql-for-socialgame.html}" +} + +@article{cap, + author = "Nancy Lynch, Seth Gilbert", + title = "Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services", + journal = "ACM SIGACT News", + year = "2002" +} + +@article{amazonacid, + author = "{Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels}", + title = "Dynamo: Amazon’s Highly Available Key-value Store", + howpublished = "\url{http://www.read.seas.harvard.edu/~kohler/class/cs239-w08/decandia07dynamo.pdf}", + year = "2007" +} + +@article{bigtable, + author = "Fay Changand Jeffrey Dean and Sanjay Ghemawat and Wilson C. Hsieh and Deborah A. Wallach and Mike Burrows and Tushar Chandra and Andrew Fikes and Robert E. Gruber", + title = "Bigtable : A Distributed Storege System for Structured Data" + } + +@article{cassandra, + author = "Avinash Lakshman and Prashant Malik.", + title = "Cassandra - a decentralized structured storage system", + journal = "LADIS", + year = "2003", + month = "Mar" + } + +@misc{mongodb, + title = "{The MongoDB 3.0 Manual}", + howpublished = "\url{http://docs.mongodb.org/manual/}" + } + +@misc{unity, + author = "Unity", + howpublished = "\url{https://unity3d.com/jp/}" +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/thanks.tex Sat Feb 17 19:34:35 2018 +0900 @@ -0,0 +1,23 @@ +\chapter*{謝辞} +\thispagestyle{empty} + +%基本的な内容は以下の通り.参考にしてみて下さい. +%厳密な決まりは無いので,個々人の文体でも構わない. +%GISゼミや英語ゼミに参加した人はその分も入れておく. +%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) + +\hspace{1zw}本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりましたhoge助教授に深く感謝したします。 + +また、本研究の遂行及び本論文の作成にあたり、日頃より終始懇切なる御教授と御指導を賜わりましたhoge教授に心より深く感謝致します。 + +数々の貴重な御助言と細かな御配慮を戴いたhoge研究室のhoge氏に深く感謝致します。 + +また一年間共に研究を行い、暖かな気遣いと励ましをもって支えてくれたhoge研究室のhoge君、hoge君、hogeさん並びにhoge研究室のhoge、hoge君、hoge君、hoge君、hoge君に感謝致します。 + +最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 + +\begin{flushright} + 2010年 3月 \\ hoge +\end{flushright} + +