-- TOC --
总算到了研究Linux系统底层机制的时候了,先总结Linux的启动流程!
Power On
POST, Power On Self Test
BIOS或UEFI被运行。
现在主流系统都是UEFI,这是一个很庞大的话题,这里不展开了。
Linux系统使用的bootloader基本都是Grub。
如果是传统的BIOS固件,这一步就是加载硬盘的MBR,然后Grub开始3个阶段的加载(stage1[boot.img] --> stage1.5[core.img] --> stage2)。(参考:启动Grub的3个stage)
如果是UEFI固件,加载一个固定名称的efi程序,这个程序直接加载Grub。(x64架构:/efi/boot/bootx64.efi,貌似大小写无关)
通过Grub,加载Linux kernel和initrd(init ramdisk)到内存,并开始执行。
kernel首先以内存中的initrd作为临时根文件系统,加载必要的驱动程序等,有了必要的驱动,kernel再切换到真正的物理硬盘的根。
1号进程,systemd,褒贬不一。
systemd作为系统的根进程,其它所有的进程都由它启动......一大推启动后,Linux系统就进入了用户可操作的状态了。
本文链接:https://cs.pynote.net/sf/linux/sys/202110195/
-- EOF --
-- MORE --