changeset 7:124583e0b372

...
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 20 Jan 2022 15:02:59 +0900
parents 3c9b5f9cff85
children c59b95705898
files paper/src/cd.cbc paper/src/ls.cbc paper/src/mkdir.cbc paper/text/chapter2.tex paper/thesis.pdf
diffstat 3 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/src/mkdir.cbc	Thu Jan 20 15:02:59 2022 +0900
@@ -0,0 +1,21 @@
+__code mkdir(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    struct FTree* newDirectory = createFileSystemTree(context, gearsDirectory->currentDirectory);
+    Node* inode = new Node();
+    inode->key = gearsDirectory->INodeNumber;
+    inode->value = newDirectory;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->iNodeTree;
+    goto cDirectory->put(inode, mkdir2);
+}
+
+__code mkdir2(struct GearsDirectoryImpl* gearsDirectory, struct Integer* name, __code next(...)) {
+    Node* dir = new Node();
+    dir->key = name->value;
+    Integer* iNum = new Integer();
+    iNum->value = gearsDirectory->INodeNumber;
+    dir->value = iNum;
+    gearsDirectory->INodeNumber = gearsDirectory->INodeNumber + 1;
+    struct FTree* cDirectory = new FTree();
+    cDirectory = gearsDirectory->currentDirectory;
+    goto cDirectory->put(dir, next(...));
+}
\ No newline at end of file
--- a/paper/text/chapter2.tex	Thu Jan 20 13:46:45 2022 +0900
+++ b/paper/text/chapter2.tex	Thu Jan 20 15:02:59 2022 +0900
@@ -129,16 +129,40 @@
 \end{table}
 
 \chapter{GearsFileSystemのdirectory}
+実装はFileとしてDataGearManagerをRedBlackTreeに格納する形で行う.
+また,Unixのinodeの仕組みをディレクトリシステムとして取り入れる.
+
 \section{Treeによるdirectory構造}
+ディレクトリ構造は2つのRedBlackTreeで実装する.
+1つ目はinode numberとfileのポインタのペアを持つ木である.
+inode numberをkey,file pointerをvalueとして持つためinode numberからfile pointerを検索するために用いる.
+2つ目はfilenameとinode numberのペアを持つ木である.
+filenameをkey, inode numberをvalueとして持つため,filenameからinode numberを検索するために用いる.
+
 \section{Unix Like な interface}
+ファイルやディレクトリの操作を行うinterfaceをUnix Likeに実装を行った.
+実装を行ったmkdir, ls, cdを説明する.
+
 \subsection{mkdir}
+ソースコード\ref{src:mkdir}はmkdirのCodeGearである.
+\lstinputlisting[caption=mkdirのCodeGear,label=src:mkdir]{src/mkdir.cbc}
+
 \subsection{ls}
+\lstinputlisting[caption=lsのCodeGear,label=src:ls]{src/ls.cbc}
+
 \subsection{cd}
+\lstinputlisting[caption=cdのCodeGear,label=src:cd]{src/cd.cbc}
+
 \section{inodeを用いたdirectory entry}
 \section{非破壊的編集によるBackup}
 
 \chapter{File構造}
+ファイルシステムはディレクトリ構造の他にファイル構造を持つ.
+GearsOSにおけるファイル構造を説明する.
+
 \section{I/O Stream}
+
+
 \section{logによるバージョン管理}
 
 \chapter{WordCount}
Binary file paper/thesis.pdf has changed