Mercurial > hg > Papers > 2021 > anatofuz-master
changeset 57:69e341226e5a
add reference
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 02 Feb 2021 14:41:18 +0900 |
parents | 3a8c21a37bf1 |
children | b1e2bcdd5191 |
files | paper/chapter/02-cbc.tex paper/chapter/03-gears.tex paper/master_paper.pdf paper/reference.bib |
diffstat | 4 files changed, 40 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/02-cbc.tex Tue Feb 02 14:17:05 2021 +0900 +++ b/paper/chapter/02-cbc.tex Tue Feb 02 14:41:18 2021 +0900 @@ -5,7 +5,7 @@ またCbCではこの軽量継続を用いて\texttt{for}文などのループの代わりに再起呼び出しを行う。 これは関数型プログラミングでのTail callスタイルでプログラミングすることに相当する。 Agda よる関数型のCbCの記述も用意されている。 -実際のOSやアプリケーションを記述する場合には、GCC及びLLVM/clang上のCbC実装を用いる。 +実際のOSやアプリケーションを記述する場合には、GCC\cite{cbcgcc}及びLLVM/clang上\cite{cbcllvm}のCbC実装を用いる。 \section{CodeGear} @@ -47,8 +47,6 @@ その為には証明に使用される定理証明支援系や、 モデル検査機での表現に適した状態遷移単位での記述が求められる。 CbCで使用するCodeGearは、 状態遷移モデルにおける状態そのものとして捉えることが可能である。 CodeGearを元にプログラミングをするにつれて、 CodeGearの入出力のDataも重要であることが解ってきた。 -CodeGearとその入出力であるDataGearを基本としたOSとして、 GearsOSの設計を行っている。\cite{gears} -現在のGearsOSは並列フレームワークとして実装されており、 実用的なOSのプロトタイプ実装として既存のOS上への実装を目指している。 \section{メタ計算} プログラミング言語からメタ計算を取り扱う場合、 言語の特性に応じて様々な手法が使われてきた。
--- a/paper/chapter/03-gears.tex Tue Feb 02 14:17:05 2021 +0900 +++ b/paper/chapter/03-gears.tex Tue Feb 02 14:41:18 2021 +0900 @@ -1,9 +1,12 @@ \chapter{GearsOS} -GearsOSとはContinuation Based Cを用いて実装しているOSプロジェクトである。 +GearsOSとはContinuation Based Cを用いて実装しているOSプロジェクトである。\cite{gears} CodeGearとDataGearを基本単位として実行する。 GearsOSはOSとして実行する側面と、 CbCのシンタックスを拡張した言語フレームワークとしての側面がある。 +現在のGearsOSはUnixシステム上のアプリケーションとして実装されているものと、 xv6の置き換えとして実装されているもの\cite{weko_195888_1}がある。 + + \section{GearsOSのビルドシステム} GearsOSではビルドツールにCMakeを利用している。 ビルドフローを図\ref{fig:gearsbuild1}に示す。 @@ -27,7 +30,15 @@ \label{fig:gearsbuild1} \end{figure} -\section{pmake} +\section{CbC xv6} +CbC xv6はGearsOSのシステムを利用してxv6 OSの置き換えを目指しているプロジェクトである。\cite{cbcxv6repo} +xv6はv6 OS\cite{lions1996lions}をx86アーキテクチャ用にMITによって実装し直されたものである。 +Raspberry Pi上での動作を目指しているため、 ARMアーキテクチャ用に改良されたバージョンを利用している。\cite{xv6rpi} + +書き換えにおいてはビルドシステムはCMakeを利用し、 Perlクロスコンパイラを導入してたりとGearsOSのビルドシステムとほぼ同じシステムを利用している。 +GearsOSを使った比較的巨大な実用的なアプリケーションであるため、 xv6の書き換えを進むに連れて様々な面で必要な機能や課題が生まれている。 +これらは都度GearsOSの開発に還元されている。 +\section{ARM用ビルドシステムの作製} GearsOSをビルドする場合は、x86アーキテクチャのマシンからビルドするのが殆どである。 この場合ビルドしたバイナリはx86向けのバイナリとなる。 これはビルドをするホストマシンに導入されているCbCコンパイラがx86アーキテクチャ向けにビルドされたものである為である。
--- a/paper/reference.bib Tue Feb 02 14:17:05 2021 +0900 +++ b/paper/reference.bib Tue Feb 02 14:41:18 2021 +0900 @@ -18,6 +18,32 @@ howpublished = {\url{https://babeljs.io/}}, } +@misc{cbcxv6repo, + title = {CbC\_xv6}, + author = {並列信頼研究室}, + organization = "琉球大学", + howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_xv6/}}, + note = {Accessed: 2021-02-02}, +} + +@misc{cbcgcc, + title = {CbC\_gcc}, + author = {並列信頼研究室}, + organization = "琉球大学", + howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_gcc/}}, + note = {Accessed: 2021-02-02}, +} + +@misc{cbcllvm, + title = {CbC\_llvm}, + author = {並列信頼研究室}, + organization = "琉球大学", + howpublished = {\url{http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_llvm/}}, + note = {Accessed: 2021-02-02}, +} + + + @misc{eclipse_pull322, title = {Add unimplemented methods code action}, author = {yaohaizh},