根据The Kernel Boot Process的这张照片:
内核映像的大部分只有大约1.5MB。我认为内核映像应该是一个神仙的大型二进制映像文件,以支持硬件(或者是这个内核模块?)和各种内核函数,因为源代码非常大。另外,initrd
在哪里?
答案 0 :(得分:1)
首先压缩内核。然后在大多数桌面环境中,内核使用一组最小的静态链接模块构建。 initrd映像从硬盘驱动器加载,从/ boot文件夹加载(请参阅grub配置),用于检测桌面硬件以加载相应的模块,以便能够安装根文件系统。 initrd映像包含这组模块。想象一下引导加载程序无法识别的RAID,LVM或外来文件系统。这就是为什么启动分区大部分时间都在ext2 / 3 /(4?)中。然后,当加载正确的模块时,根文件系统将从initrd映像与硬盘驱动器(pivot_root)上的映像交换。然后其余的硬件模块从“无initrd”文件系统加载,主要是在udev的帮助下。
希望这有帮助!
P.S。如果我错了,请纠正我!