comparison paper/chapter/03-gears.tex @ 57:69e341226e5a

add reference
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 02 Feb 2021 14:41:18 +0900
parents 66b32f3ec7fa
children b1e2bcdd5191
comparison
equal deleted inserted replaced
56:3a8c21a37bf1 57:69e341226e5a
1 \chapter{GearsOS} 1 \chapter{GearsOS}
2 2
3 GearsOSとはContinuation Based Cを用いて実装しているOSプロジェクトである。 3 GearsOSとはContinuation Based Cを用いて実装しているOSプロジェクトである。\cite{gears}
4 CodeGearとDataGearを基本単位として実行する。 4 CodeGearとDataGearを基本単位として実行する。
5 GearsOSはOSとして実行する側面と、 CbCのシンタックスを拡張した言語フレームワークとしての側面がある。 5 GearsOSはOSとして実行する側面と、 CbCのシンタックスを拡張した言語フレームワークとしての側面がある。
6
7 現在のGearsOSはUnixシステム上のアプリケーションとして実装されているものと、 xv6の置き換えとして実装されているもの\cite{weko_195888_1}がある。
8
6 9
7 \section{GearsOSのビルドシステム} 10 \section{GearsOSのビルドシステム}
8 GearsOSではビルドツールにCMakeを利用している。 11 GearsOSではビルドツールにCMakeを利用している。
9 ビルドフローを図\ref{fig:gearsbuild1}に示す。 12 ビルドフローを図\ref{fig:gearsbuild1}に示す。
10 CMakeはautomakeなどのMakeファイルを作成するツールに相当するものである。 13 CMakeはautomakeなどのMakeファイルを作成するツールに相当するものである。
25 \end{center} 28 \end{center}
26 \caption{GearsOSのビルドフロー} 29 \caption{GearsOSのビルドフロー}
27 \label{fig:gearsbuild1} 30 \label{fig:gearsbuild1}
28 \end{figure} 31 \end{figure}
29 32
30 \section{pmake} 33 \section{CbC xv6}
34 CbC xv6はGearsOSのシステムを利用してxv6 OSの置き換えを目指しているプロジェクトである。\cite{cbcxv6repo}
35 xv6はv6 OS\cite{lions1996lions}をx86アーキテクチャ用にMITによって実装し直されたものである。
36 Raspberry Pi上での動作を目指しているため、 ARMアーキテクチャ用に改良されたバージョンを利用している。\cite{xv6rpi}
37
38 書き換えにおいてはビルドシステムはCMakeを利用し、 Perlクロスコンパイラを導入してたりとGearsOSのビルドシステムとほぼ同じシステムを利用している。
39 GearsOSを使った比較的巨大な実用的なアプリケーションであるため、 xv6の書き換えを進むに連れて様々な面で必要な機能や課題が生まれている。
40 これらは都度GearsOSの開発に還元されている。
41 \section{ARM用ビルドシステムの作製}
31 GearsOSをビルドする場合は、x86アーキテクチャのマシンからビルドするのが殆どである。 42 GearsOSをビルドする場合は、x86アーキテクチャのマシンからビルドするのが殆どである。
32 この場合ビルドしたバイナリはx86向けのバイナリとなる。 43 この場合ビルドしたバイナリはx86向けのバイナリとなる。
33 これはビルドをするホストマシンに導入されているCbCコンパイラがx86アーキテクチャ向けにビルドされたものである為である。 44 これはビルドをするホストマシンに導入されているCbCコンパイラがx86アーキテクチャ向けにビルドされたものである為である。
34 45
35 CbCコンパイラはGCCとllvm/clang上に構築した2種類が主力な処理系である。 46 CbCコンパイラはGCCとllvm/clang上に構築した2種類が主力な処理系である。