我的百度博:http://hi.baidu.com/ken_unc
声明:以下是本人个人理解,如在细节上或用词上有理解错误,不吝赐教!仅供参考!
以前看过好多遍Unix系统启动过程,但是都没有记录下来,看过一阵儿就忘了一些,所以,今天整理出来;
系统启动过程很有助于我们理解、管理系统,下面仅仅说下单系统引导,对于多系统引导稍加推敲,自然明白;
单操作系统,这种情况最单纯,而且真正的服务器也不会出现双操作系统或多操作系统:
1,计算机电源线接好后,按下计算机上的电源按钮--就是给计算机加电;
2,固化在BIOS里的检测程序开始检测各个硬件及硬件之间的接口是否已经插好,是否能够正常工作;
BIOS是计算机主板上的一个硬件,打开机箱就可以看到,主板出厂前,厂商就已把检测程序固化在这个硬件里,对使用者来讲是透明的。
3,第2步硬件检测一切正常后,加载硬盘上主引导扇区(MBR)中的程序,接着,BIOS将控制权交给MBR中的程序;
MBR:MBR中的程序记录了用来启动硬盘上操作系统的基本信息,可以简单的理解为一张记录表;
说明:如果,在安装FreeBSD7.0时,采用了FreeBSD Boot
Manager,则BIOS检测完硬件后,会出现图1所示;
FreeBSD Boot Manager:我的理解,似乎很合理,干脆、简单、直截了当的讲,它是一个用于管理MBR的一小段儿程序,让你选择MBR中记录表的哪一项;对于单操作系统安不安装都可以(就像前面说的,对于单操作系统,MBR记录中只有该操作系统一个记录项,它就像MBR的默认选项一样),而对于双操作或多操作系统,那么就要安装FreeBSD
Boot Manager了(当然,像FreeBSD Boot
Manager一样,grub等也可以),因为,我们得有一个程序用于管理MBR中多条记录,如果没有,那么我们的结果就是只能进入一个操作系统,而无法进入其他操作系统;
图1:
4,不管是否安装了FreeBSD Boot Manager,紧接着接着,MBR中的程序都会根据记录表中信息,去硬盘上相应的位置找操作系统的引导程序;
5,找到操作系统引导程序后,将其加载到内存中,MBR中的程序将控制权交给刚刚加载的操作系统引导程序;
图2:
6,引导程序开始加载内核,然后,可以看到图3,我们在此可以按回车或等待10s;
图3:
7,如图4~7(7中红线上)(其实,可以将图4~7连起来看,只是截图不能截出那么长的图),图4中有红线的那行,如果没记错,他是加载模块,整个图4~7这个过程是操作系统内核检测硬件;
图4
图5
图6
图7
8,操作系统内核检测完硬件,紧接着,内核启动进程 0(swapper)、进程 1(init);
进程 0:是调度进程,常被称为交换进程(swapper),该进程并不执行任何磁盘上的程序--它是内核的一部分,因此,也被称为系统进程。
进程 1:该进程负责在内核检测完硬件后,启动一个完整的UNIX系统,它通常读取与系统有关的初始化文件(/etc/rc*文件),并将系统引导到一个多用户状态,该进程决不会终止,如图8、9;
图8
图9
不吝赐教,完善此文!!