# HG changeset patch # User menikon # Date 1581364265 -32400 # Node ID 996a70147cb0b7108e3fcab9e1340884b1d168a6 # Parent 53114bdcb0c320e7081f4a3e4752319b1336b75f fix diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/chapter3.tex --- a/final_main/chapter3.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/chapter3.tex Tue Feb 11 04:51:05 2020 +0900 @@ -1,7 +1,7 @@ \chapter{GearsOS} %\label{chap:poordirection} \section{GearsOS の概要} -Gears OS は CbC によって記述されており, CodeGear と DataGear の単位を用いて開発されている OS である. +Gears OS \cite{gears} は CbC によって記述されており, CodeGear と DataGear の単位を用いて開発されている OS である. Gears OS は 一連の実行が行われる際に使用される CodeGear と DataGear を全て持っている Context と呼ばれるものを持っている.Gears OS は CodeGear 間の継続などの際,常に context を持ち歩いており CodeGear と DataGear の参照が必要になる場合,この Context を通して参照される. \section{Context} @@ -17,7 +17,7 @@ \label{fig:cbc} \end{figure} -\section{inetrface} +\section{Inetrface} Interface は Gears OS のモジュール化の仕組みである. Interface は呼び出しの引数になる Data Gear の集合であり,そこで呼び出される Code Gear のエントリである.呼び出される Code Gear の引数となる Data Gear はここで全て定義される. Interface を定義することで複数の実装を持つことができる. この Interface は, Java の Interface や Haskell の型クラスに対応し, 導入することで仕様と実装に分けて記述することが出来る. 図\ref{fig:interface} は Stack の Interface とその実装を表したものである. diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/chapter4.tex --- a/final_main/chapter4.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/chapter4.tex Tue Feb 11 04:51:05 2020 +0900 @@ -4,12 +4,16 @@ 本研究で使われているのは ARM\cite{arm} 上で動作する Raspberry Pi 用に改良されたxv6を使用する. -%\section{FileSystem} +\section{FileSystem} %どんなものか書く +FileSystem とは,コンピュータの資源を操作するための OS が持つ機能のことである.ファイルといえば記憶装置内に格納されている情報を指すが,デバイスやプロセス,カーネル内の処理をする際の情報などをファイルとして扱う FileSystem も存在する. OS ごとに利用している FileSystem は異なるが,一部の OS を除きほとんどの OS には FileSystem が存在する. +%記憶装置内に格納されているデータ,デバイスやプロセス,カーネル内の処理をする際の情報などファイルとして管理している. +%processについて(軽く) +\section{xv6 のFileSystem} +.xv6 の FileSystem は,デバイスやプロセス,カーネル内の処理をする際の情報などをファイルとして扱う FileSystem である. +xv6 の FileSystem は図\ref{fig:xv6filesystem} のように7つの階層によって構成されている. -%processについて(軽く) -\section{xv6 のFileSystem構造} -xv6 の FileSystem は図\ref{fig:xv6filesystem} のように7つの階層によって構成されている. +\newpage \begin{figure}[ht] \begin{center} \includegraphics[width=50mm]{fig/FileSystemLayout.pdf} diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/chapter5.tex --- a/final_main/chapter5.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/chapter5.tex Tue Feb 11 04:51:05 2020 +0900 @@ -3,7 +3,7 @@ \section{書き換え方針} -\section{FileSystemのInterface} +\section{FileSystem の Interface の定義(fs.dg)} \lstinputlisting[label=fs_interface, caption=FileSystemのInterface]{src/fs.dg} diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/future.tex --- a/final_main/future.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/future.tex Tue Feb 11 04:51:05 2020 +0900 @@ -1,1 +1,4 @@ \chapter{まとめと今後の課題} +今回の研究では xv6 の FileSystem 部分について CbC を用いて書き換えを行った.しかし, xv6 はGears OS を開発する前段階として開発しているので今後は書き換えた xv6 を Gears OS に適応した形に改良していく必要がある. +xv6 の FileSystem 部分書き換え後 make し build することはできたが,デバックをまだ行っていないため正常に動くかどうか確認することが求められる.また,動かなかった場合修正を行い OS として機能しているか再確認する必要がある. +後々は証明支援器 agda で証明できる OS として開発したい \ No newline at end of file diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/main.out --- a/final_main/main.out Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/main.out Tue Feb 11 04:51:05 2020 +0900 @@ -9,10 +9,11 @@ \BOOKMARK [1][-]{section.3.3}{3.3 inetrface}{chapter.3}% 9 \BOOKMARK [0][-]{chapter.4}{第4章 xv6}{}% 10 \BOOKMARK [1][-]{section.4.1}{4.1 xv6 の概要}{chapter.4}% 11 -\BOOKMARK [1][-]{section.4.2}{4.2 xv6 のFileSystem構造}{chapter.4}% 12 -\BOOKMARK [1][-]{section.4.3}{4.3 FilleSystem の API}{chapter.4}% 13 -\BOOKMARK [0][-]{chapter.5}{第5章 CbCによるFileSystemの書き換え}{}% 14 -\BOOKMARK [1][-]{section.5.1}{5.1 書き換え方針}{chapter.5}% 15 -\BOOKMARK [1][-]{section.5.2}{5.2 FileSystemのInterface}{chapter.5}% 16 -\BOOKMARK [1][-]{section.5.3}{5.3 CbC による FileSystem の書き換え}{chapter.5}% 17 -\BOOKMARK [0][-]{chapter.6}{第6章 まとめと今後の課題}{}% 18 +\BOOKMARK [1][-]{section.4.2}{4.2 FileSystem}{chapter.4}% 12 +\BOOKMARK [1][-]{section.4.3}{4.3 xv6 のFileSystem}{chapter.4}% 13 +\BOOKMARK [1][-]{section.4.4}{4.4 FilleSystem の API}{chapter.4}% 14 +\BOOKMARK [0][-]{chapter.5}{第5章 CbCによるFileSystemの書き換え}{}% 15 +\BOOKMARK [1][-]{section.5.1}{5.1 書き換え方針}{chapter.5}% 16 +\BOOKMARK [1][-]{section.5.2}{5.2 FileSystemのInterface}{chapter.5}% 17 +\BOOKMARK [1][-]{section.5.3}{5.3 CbC による FileSystem の書き換え}{chapter.5}% 18 +\BOOKMARK [0][-]{chapter.6}{第6章 まとめと今後の課題}{}% 19 diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/main.pdf Binary file final_main/main.pdf has changed diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/main.tex --- a/final_main/main.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/main.tex Tue Feb 11 04:51:05 2020 +0900 @@ -74,8 +74,8 @@ \tableofcontents % 目次 \listoffigures % 図目次 -\listoftables % 表目次 -\lstlistoflistings +%\listoftables % 表目次 +\lstlistoflistings % ソースコード目次 %以下のように、章ごとに個別の tex ファイルを作成して、 % main.tex をコンパイルして確認する。 @@ -105,6 +105,6 @@ \input{thanks.tex} % 付録 -\input{appendix.tex} +%\input{appendix.tex} \end{document} diff -r 53114bdcb0c3 -r 996a70147cb0 final_main/reference.bib --- a/final_main/reference.bib Sun Feb 09 19:53:00 2020 +0900 +++ b/final_main/reference.bib Tue Feb 11 04:51:05 2020 +0900 @@ -54,6 +54,15 @@ } +@article{ + gears, + author = "河野 真治 and 伊波 立樹 and 東恩納 琢偉", + title = "Code Gear、Data Gear に基づく OS のプロトタイプ", + journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS)", + month = "May", + year = 2016 +} + @article{GearsOS, author = "伊波立樹 and 河野真治", title = "Gears OS の並列処理", diff -r 53114bdcb0c3 -r 996a70147cb0 final_sub/utf8.pdf Binary file final_sub/utf8.pdf has changed diff -r 53114bdcb0c3 -r 996a70147cb0 final_sub/utf8.tex --- a/final_sub/utf8.tex Sun Feb 09 19:53:00 2020 +0900 +++ b/final_sub/utf8.tex Tue Feb 11 04:51:05 2020 +0900 @@ -92,6 +92,11 @@ \section{CbCのInterface} 先述した通り, CbCのInterface は Gears OS のモジュール化の仕組みである. Interface は呼び出しの引数になる Data Gear の集合であり,そこで呼び出される Code Gear のエントリである.呼び出される Code Gear の引数となる Data Gear はここで 全て定義される. Interface を定義することで複数の実装を持つことができる.このInterfaceは,JavaのInterfaceやHaskellの型クラスに対応し,導入することで仕様と実装に分けて記述することが出来る. +\section{xv6 の FileSystem} + +\section{CbC による xv6 FileSystem の書き換え} + +\section{まとめと今後の課題} \thispagestyle{fancy} %\begin{thebibliography}{9} diff -r 53114bdcb0c3 -r 996a70147cb0 rewrite_xv6_FileSystem_in_CbC.mm --- a/rewrite_xv6_FileSystem_in_CbC.mm Sun Feb 09 19:53:00 2020 +0900 +++ b/rewrite_xv6_FileSystem_in_CbC.mm Tue Feb 11 04:51:05 2020 +0900 @@ -1,6 +1,6 @@ - + @@ -35,16 +35,34 @@ - + - + + + + + + + + + + + + + + + + + + + @@ -52,7 +70,10 @@ - + + + + @@ -61,25 +82,31 @@ + + + + + + - + - + - + - + - +