3

根据内核启动过程中的这张图片: 引导加载程序完成后的 RAM 内容

大部分内核映像只有 ~1.5MB。我认为内核映像应该是一个巨大的二进制映像文件,以支持硬件(或者这个内核模块?)和各种内核功能,因为源代码非常大。还有,在哪里initrd

4

1 回答 1

1

首先内核被压缩。然后在大多数桌面环境中,内核是用一组最小的静态链接模块构建的。initrd 映像是从硬盘驱动器的 /boot 文件夹(请参阅您的 grub 配置)加载的,用于检测您的桌面硬件以加载适当的模块,以便能够安装根文件系统。initrd 映像包含这组模块。想象一下引导加载程序无法识别的 RAID、LVM 或外来文件系统。这就是为什么引导分区大部分时间都在 ext2/3/(4?) 中的原因。然后,当加载了正确的模块时,根文件系统会从 initrd 映像与硬盘驱动器 (pivot_root) 上的映像交换。然后其余的硬件模块从“none initrd”文件系统加载,主要是在 udev 的帮助下。

希望这可以帮助!

PS如果我错了请纠正我!

于 2012-06-22T12:39:09.200 回答