Grub 中的 proc 是什么?

Grub 中的 proc 是什么?

我在 Grub 的命令行中使用它,我注意到一些东西抓住了我的意图,我通过 Grub 的ls命令列出了设备,我注意到有一个名为 (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 文件夹?回答:procfs 文件系统并不是 Linux 特有的。 BSD 和其他符合 POSIX 标准的操作系统中也使用了类似的方法(请阅读这里)。

Grub 2 需要管理磁盘设备(为了加载内核)、鼠标和键盘输入等资源。例如,它需要读取和理解不同的文件格式(如 ELF 格式)并为 Linux 内核运行解压缩过程。

这就是为什么 Grub 2 的功能是我们所说的操作系统的子集(不要误解:它是不是实际上是一个操作系统),开发人员可能决定使用这样的 procfs 来管理事物。

编辑:

请注意,Grub 命令ls /不会给出 Grub 内存文件系统的根文件夹的内容。在我的 Ubuntu 机器的 Grub shell 中,它只是提供了我的主引导驱动器的根目录的内容。这意味着linuz您上面提到的文件只是 grub 将启动的内核...

相关内容