Ken.UNC

Good

FreeBSD7.0基础--系统启动全过程及swapper、init启动时机

我的百度博: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




不吝赐教,完善此文!!



posted on 2008-05-30 13:03 Ken.UNC 阅读(740) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。