ウォンツテック

そでやまのーと

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

FD上のマップをどうしようかと悩み中。
いろいろ調べてみるとLinuxのレスキューディスクのように1枚のFDにカーネルファイルシステムを入れる場合、vmlinuz(kernel)とinitrd(FS)を別々のファイルとして用意し、GRUBLILOのようなブートローダーがそのディスクのフォーマットを理解(Ext2などを理解し)/boot/vmlinuzからはカーネルを、/boot/initrdからはファイルシステムをそれぞれロードしinitrdをルートファイルシステムとして「メモリ上」に配置している。-

今回はメモリ上のみで操作するようなファイルシステムは考えていないのでFDを一つのファイルシステムとしてカーネルも読み込みたいんだけど、その場合GRUBの代わりになる部分「bootmiddle.S」でファイルシステムを理解するコードを書かなくてはいけなくなるのでかなり面倒な事になる。


別な方法としてはFD上に以下のようなマップ

ブート セカンドブート カーネル ファイルシステム
bootacient bootmiddle kernel ext3

のようにカーネルの直後にファイルシステムを配置して完全に別個にしてカーネル自体はファイルとして扱わない事にする方法も考えられる。


結局ファイルシステムは完全に「ソフトウェア」による制御なんで好きなように出来るんだけど果たしてそれが正しい配置なのかどうかがわからない。

  • 追記 別にどう配置してもいいような気がしてきた。


まぁでも勉強のためカーネル自体もファイルシステムのファイルとして扱えるような配置でやってみようかな。

ディスク上に配置するマップを作成