1、从BIOS到KERNEL
MBR->KERNEL->KERNEL自解压->内核初始化->内核启动(start_kernel函数,在linux内核源代码树的/usr/src/linux/init/main.c中)
2、内核启动:创建1#进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程)。此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等
对于Redhat来说,执行的顺序为:
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local #运行模式2、3、5时会运行的脚本
/sbin/mingetty(或getty) # 等待用户登录
/etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。RUNLEVEL:0-6
0:halt,1:单用户,2:多用户,3:多用户并启动NFS服务,4:保留,5:运行xdm(X window)以图形界面方式登录,6:reboot