ウォンツテック

そでやまのーと

OS作成 - ファイルシステム編

openとreadを実装。インタフェースはPOSIX準拠だけど中身は独自で書きました。openの引数でファイルorディレクトリへのフルパスを指定して、存在すれば(今のところファイルフラグは無視)そのファイルのdentry(inodeをメンバに持つ)をディスクから読み取って作成し、それをfile構造体のメンバとし、さらにそれを仮想プロセスのグローバル変数gtaskのfile構造体へのポインタ配列として登録。ファイルディスクリプタ値はその配列の添え字で、その値を元にreadを行う事にしてます。open時はinodeの探索だけで実際にディスクからメモリへの読み込みはread時に行います。

テストではファイルシステム構築時に入れておいた「bootm.bin」の先頭64バイトの領域がちゃんと表示出来ました。


lseek,closeはディスクアクセス発生しないから簡単なので後はopen時のファイル作成、writeですね。

sodex rev.14