Linux启动过程,大致可分为3步
第1步加载BIOS并读取MBR以引导启动kernel;第2步执行init启动各项服务,包括/etc/rc.d/rc.sysinit以及/etc/modprobe.conf等;第3步执行/bin/login等候用户登录
加载kernel
1加载BIOS硬件信息
2读取第一个启动设备的MBR的引导加载程序(lilo/grub/spfdisk)
3加载kernel并解压缩,尝试驱动所有硬件设备
主机启动后第一个读取的地方就是BIOS,其记录了各种硬件信息,系统根据这些信息进行加电自检,成功后开始读取MBR;
MBR包含引导加载程序以便将OS kernel读入内存,对于linux常见的有lilo和grub,而kernel位于/boot目录,
$ strings /boot/vmlinuz-2.6.9-67.EL | head -5
Direct booting from floppy is no longer supported.
Please use a boot loader program instead.
Remove disk and press any key to reboot . . .
.HdrS
ZZuD
执行init
4执行init程序,并由init执行/etc/rc.d/rc.sysinit
5启动外挂模块/etc/modprobe.conf
6执行各个批处理文件
7执行/etc/rc.d/rc.local
加载完kernel后,第一个执行的程序为/sbin/init(其pid为1),而其需要读取/etc/initta