详解Linux系统开机后的启动过程
Lux的启动其实和wdows的启动过程很类似,不过wdows我们是无法看到启动信息的,而lux启动时我们会看到许多启动信息,例如某个服务是否启动。
Lux系统的启动过程大体上可分为五部分内核的引导;运行it;系统初始化;建立终端 ;用户登录系统。
A 内核引导
当计算机打开电源后,是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。紧接着由启动设备上的grub程序开始引导lux,当引导程序成功完成引导任务后,Lux从它们手中接管了CPU的控制权,然后CPU就开始执行Lux的核心映象代码,开始了Lux启动过程。也就是所谓的内核引导开始了,在内核引导过程中其实是很复杂的,我们就当它是一个黑匣子,反正是lux内核做了一些列工作,内核调用加载了it程序,至此内核引导的工作就完成了。交给了下一个主角it。
B 运行it
it 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。it 程序是需要读取配置文件 /etc/ittab。ittab是一个不可执行的文本文件,它有若干行指令所组成。具体内容如下(你可以在你的lux上执行命令 cat /etc/ittab 这样获得)
复制代码
# the system a certa run-level.
#
# Author: Miquel van Smoorenburg,
# Modified for RHS Lux by Marc Ewg and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set itdefault to this)
# 1 - Sgle user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not haveworkg)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set itdefault to this)
#
###表示当前缺省运行级别为5(itdefault);
id:5:itdefault:
###启动时自动执行/etc/rc.d/rc.sysit脚本(sysit)
# System itialization.
si::sysit:/etc/rc.d/rc.sysit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
###当运行级别为5时,以5为参数运行/etc/rc.d/rc脚本,it将等待其返回(wait)
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
###在启动过程中允许按CTRL-ALT-DELETE重启系统
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sb/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few mutes
# of power left. Schedule a shutdown for 2 mutes from now.
# This does, of course, assume you have powerd stalled and your
# UPS connected and workg correctly.
pf::powerfail:/sb/shutdown -f -h +2 "Power Failure; System Shuttg Down"
# If power was restored before the shutdown kicked , cancel it.
pr:12345:powerokwait:/sb/shutdown -c "Power Restored; Shutdown Cancelled"
###在2、3、4、5级别上以ttyX为参数执行/sb/mgetty程序,打开ttyX终端用于用户登录,
###如果进程退出则运行mgetty程序(respawn)
# Run gettys standard runlevels
1:2345:respawn:/sb/mgetty tty1
2:2345:respawn:/sb/mgetty tty2
3:2345:respawn:/sb/mgetty tty3
4:2345:respawn:/sb/mgetty tty4
5:2345:respawn:/sb/mgetty tty5
6:2345:respawn:/sb/mgetty tty6
###在5级别上运行xdm程序,提供xdm图形方式登录界面,并在退出时重新执行(respawn)
# Run xdm runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
以上面的ittab文件为例,来说明一下ittab的格式。其中以#开始的行是注释行,除了注释行之外,每一行都有以下格式
复制代码