私はGrubのコマンドラインでそれを使っていて、私の意図を捕らえたのを見つけました。ls
Grubのコマンドを介してデバイスを一覧表示し、(proc)という仮想デバイスがあることを発見しました。
grub> ls
(proc) (hd0) (hd0, msdos1)
この(proc)
デバイスの興味深い点は、ルートディレクトリと同様の構造を持つ圧縮Linuxカーネルが含まれていることです。
(grub)> ls (proc) /
Device proc: Filesystem type procfs - Sector size 512B - Total size 0Kid
lost+found/ swapfile etc/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/
vmlinuz initrd.img
--snip--
私の結論は、(proc)がGrubに独自のルートファイルシステムがインストールされているメモリ内ファイルシステムであり、grubもLinuxカーネルの共通procファイルシステムをルートファイルシステムとして使用するようです。 Grubのデバイスは何ですか(proc)
?なぜそこにいるのですか?
答え1
いいえ、Grub 2ブートローダはカスタムLinuxカーネルではありません。独自のコードベースがあります。 Grub 2の詳細をご覧ください。これウィキペディアの記事。
なぜprocフォルダを使用するのですか? A:procfsファイルシステムはLinux固有のものではありません。 BSDや他のPOSIX準拠のオペレーティングシステムでも同様のアプローチが使用されます(読み取りここ)。
Grub 2は、ディスクデバイス(カーネルをロードするため)、マウス、キーボード入力などのリソースを管理する必要があります。たとえば、さまざまなファイル形式(ELF形式など)を読み、理解し、Linuxカーネルに対して解凍プロセスを実行する必要があります。
これがGrub 2の機能がオペレーティングシステムと呼ばれるもののサブセットである理由です(誤解しないでください。)いいえ実際にはオペレーティングシステムです)開発者はこれらのprocfを使用して物事を管理することを決定できます。
編集する:
Grub コマンドは、ls /
Grub メモリファイルシステムのルートフォルダの内容を提供しません。私のUbuntuシステムのGrubシェルは、デフォルトのブートドライブルートの内容のみを提供します。これはlinuz
、上記のファイルが単にgrubが起動するカーネルであることを意味します。