好好学习,天天开源!
Linux引导过程
上一篇 /
下一篇 2007-10-09 09:43:10
/ 个人分类:Linux
Linux的引导是指计算机从加电(按下power键)到出现shell提示符的这个过程,这个引导过程有这么几个步骤:
-gN+J$M3I2@/x
\4|P:{0- BIOS
- Master Boot Record(MBR)
- LILO or GRUB
- Kernel
- init
- Run Levels
一、BIOS
LUPA开源社区.D@,Y6T{ PC机的BIOS一般由两部分组成:POST(Power-On Self Test,加电后自检)代码和运行时服务代码。加电后CPU就从地址
FFFF0H处开始执行指令,实际上这是一条跳转指令,跳到真正的系统BIOS的POST代码处开始运行。POST代码完成硬件的检测和本地设备的枚举与初始化工作,当POST完成后,这段代码会从内存中清除,然后运行时服务代码开始运行。运行时服务代码检测CMOS配置,按照CMOS设定的顺序搜索处于活动状态且可以引导的设备,包括硬盘、软盘、CD-ROM、网络设备等一切可以引导的设备。一旦找到可引导的设备,BIOS就将引导设备里的引导代码加载到RAM中,然后将控制权交给引导代码,由引导代码完成系统的继续引导,至此,BIOS的工作也完成了。
LUPA开源社区SN)Y0}0t2Ld4bQm
d"@ 二、Master Boot Record(MBR)
LUPA开源社区PmAu
L5B\+p MBR是一个512字节大小的扇区,位于硬盘的第一个扇区(0 道 0 柱面 1 扇区),
由三部分组成:主引导程序、硬盘分区表及扇区结束标志字(55AA),就是我们通常所说的主引导记录。LUPA开源社区z-A]7V'}5g R-|
D#e1L 从硬盘引导时,BIOS将MBR加载到内存,然后将控制权交给MBR。MBR的主引导程序开始运行,在硬盘分区表中搜索活动分区,找到后就将活动分区的引导程序加载到内存并将控制权交给它,由引导程序完成操作系统的引导。MBR的主引导程序是和具体的操作系统无关的。
H6Fc7AX0 三、LILO or GRUB
Q
v7X
Q Z0 由于单一的MBR只能引导一个操作系统,当需要引导多个操作系统时就会出现问题,这时就需要更灵活的引导加载程序。LILO和GRUB是众多引导加载程序当中的两个,主要用于引导Linux。
$b5IdnI$Sw#\,M0 安装linux时可以选择将GRUB或者LILO安装到MBR中,这时就替代了MBR里的主引导程序,当BIOS加载MBR时实际加载的是GRUB或者LILO的代码,由GRUB或者LILO完成Linux内核映象的加载。
EG+|
R M(Ey i0 四、Kernel
:o6Dk#\B0fBw0 当内核被加载到内存之后,控制就转到内核了,由内核完成Linux系统启动的所有准备工作。但内核并不是一个可运行的程序,而是一个压缩过的内核映象,所以首先要做的就是解压内核映象。解压后内核首先进行设备的初始化,然后加载系统的根文件系统,一旦根文件系统加载成功,内核就运行系统的第一个进程:init进程。