顺序:
firmware-->bootloader-->Kenel-->init-->/etc/inittab-->/etc/rc.d/rc.sysinit-->/etc/rc.d/rc-->/etc/rc.d/rc[0-6].d
-->登录
firmware
固件检测(CMOS/BIOS),post加电自检。常用固件设置:安全设置、可引导介质列表、可引导介质搜索顺序、电源管理、启动细节显示等。
硬件时钟的相关设置:硬件时钟和软件时钟不一致会导致某些软件不能正常运行。date命令可查看并修改软件时钟,hwclock命令查看并修改硬件时钟。其中hwclock选项中–hctosys可将软件时间设置为硬件时间,–systohc可将硬件时间设置为软件时间。如下图
bootloader
硬件检测完后会进入MBR,载入其中的bootloader自举程序(GRUB)。主要作用为载入内核,在/etc/grub.conf里可看到相关配置信息。
Kenel
系统内核,首先在linux层面上驱动硬件,然后启动init进程。
init
init启动后读取inittab文件,执行缺省运行级别,从而引导过程。pid始终为1,ppid为0(内核调度器Kenel scheduler,用于分配进程时间和切换进程)。
/etc/rc.d/rc[0-6].d
[0-6]代表系统启动的等级。在该文件夹里的内容都为软链接文件,以大写K开头的文件系统开机不启动,以大写S开头的文件系统开机自启,可以通过修改文件名控制程序是否自启动。所以如果想要设置一个开机自启动,则可以将该程序软链接到相应等级对应的文件夹里,并以大写S开头即可。
Ex:将aa.sh设置为开启图形界面(即等级为5)时自启动
ln -s aa.sh /etc/rc.d/rc5.d/S100aad