首先加载BIOS的硬件信息,众所周知BIOS即Basic Input/Output Setup的意思,每次你按下开机键,计算机首先就会加载BIOS的信息,开机时按del键可以进入BIOS进行设置,比如最常用的就是设置从硬盘启动还是从光驱启动或其他,相信装过操作系统的人都知道这个。当然BIOS里面还有相当多的信息,比如硬盘大小,电压等。

 

如果BIOS是设置从硬盘启动的话,那么读完BIOS后会先去读取第一个开机硬盘的头一个扇区,就是MBR,估计有人听过,即master boot record。引导程序如grub,lilo都装在这里。为什么要读取这些信息呢?想想你机器里装的多系统,如果没有引导程序,机器就不知道他该启动哪个系统,引导程序的作用正是提供几个操作系统的选项,然后各个选项都指向了操作系统的启动地址。

 

机器从引导程序找到了linux内核后,就要开始载入linux内核了,linux系统的内核基本上安装在/boot下,引导程序就会找到boot下的内核,并加载。

 

加载完毕后,内核执行/sbin/init程序,而这个程序会根据/etc/inittab文件里的信息选择登入模式,一共有7种模式,分别以0--6数字表示。基本上我们用的linux装有图形界面的是用模式5。

 

知道了登入模式后,就要开始读取主机信息了,linux首先读取/etc/rc.d/rc.sysinit,其中包括PATH路径和一些LINUX操作系统最基本的信息。

 

接下来就要开始加载各个模块了,系统从/etc/modules.conf读入模块相关信息

/sbin/init程序开始执行run-level中的各个脚本了,刚开始已经选择了等如模式0--6,则就会执行/etc/rc.d/rc*.d里的脚本了。进入/etc/rc.d/rc5.d文件夹,ls -l查看,会发现这里都是指向rc.d/init.d里面脚本的链接。由于各个登入模式都有不同的脚本启动,而所有启动的脚本都是来自于init.d里。rc*.d里的脚本名要么是K开头,要么是S开头,K表示kill,S表示start,S和K后面的数字代表启动的优先级,越小越优先。

 

到这里差不多已经完成了开机的大部分任务,接着/sbin/init就要开始执行执行linux的个人化设定。这些个设定都保存在/etc/rc.d/rc.local里。

(责任编辑:A6)

本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------