在
计算器概论
里面我们有谈到那个可爱的
BIOS
与
CMOS
两个东西,
CMOS
是记录各项硬件参数且
嵌入在主板上面的储存器,
BIOS
则是一个写入到主板上的一个韧体
(
再次说明,
韧体就是写入到硬
件上的一个软件程序
)
。
这个
BIOS
就是在开机的时候,计算机系统会主动执行的第一个程序了!
½下来
BIOS
会去分析计算机里面有哪些储存设备,我们以硬盘为例,
BIOS
会依据使用者的设定去
取得能够开机的硬盘,
并且
到该硬盘里面去读取第一个扇区的
MBR
位置。
MBR
这个½有
446 bytes
的硬盘容量里面会放置最基本的开机管理程序
,
此时
BIOS
就功成圆满,而½下来就是
MBR
内的开
机管理程序的工作了。
这个开机管理程序的目的是在加载
(load)
核心文件
,
由于开机管理程序是操作系统在安装的时候所提
供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件,
然后½下来就是核心文件
的工作,开机管理程序与
BIOS
也功成圆满,½之后的工作就½给大家所知道的操作系统啦!
简单的说,整个开机流程到操作系统之前的动作应该是这样的:
1.
BIOS
:开机主动执行的韧体,会认识第一个可开机的装置;
2.
MBR
:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序;
3.
开机管理程序
(boot loader)
:一支可读取核心文件来执行的软件;
4.
核心
文件
:开始操作系统的功能
...
第二点要注意,如果你的分区表为
GPT
格式的话,那么
BIOS
也能够从
LBA0
的
MBR
兼容区块
读取第一½段的开机管理程序代码,
如果你的开机管理程序能够认识
GPT
的话,那么使用
BIOS
同样可以读取到正确的操作系统核心喔!换句话说,
如果开机管理程序不懂
GPT
,例如
Windows
XP
的环境,那自然就无法读取核心文件,开机就失败了!
Tips
由于
LBA0
½提供第一½段的开机管理程序代码,因此如果你使用类似
grub
的开机
管理程序的话,那么就得要额外分区出一个『
BIOS boot
』的分区槽,
这个分区槽才能够放置其他开机过程所需
的程序代码!在
CentOS
当中,这个分区槽通常占用
2MB
左右而已。
由上面的说明我们会知道,
BIOS
与
MBR
都是硬件本身会支持的功能,至于
Boot loader
则是操作系
统安装在
MBR
上面的一套软件了。由于
MBR
½有
446 bytes
而已,因此这个开机管理程序是非常小
而美的。
这个
boot loader
的主要任务有底下这些项目:
.
提供选单
:用户可以选择不同的开机项目,这也是多重引导的重要功能!
.
载入核心
文件
:直½指向可开机的程序区段来开始操作系统;
.
转½其他
loader
:½开机管理功能转½给其他
loader
负责。
上面前两点还容易理½,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的开机
管理程序呢!
有可能吗?我们的硬盘不是只有一个
MBR
而已?是没错啦!但是
开机管理程序除了
可以安装在
MBR
之外,
还可以安装在每个分区槽的启动扇区
(boot sector)
喔!瞎密?分区槽还有各
别的启动扇区喔?
没错啊!这个特色才能造就『多重引导』的功能啊!