简单的说,整个启动流程到操作系统之前的动作应该是这样的:
-
BIOS:启动主动运行的韧体,会认识第一个可启动的装置;
-
MBR:第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序;
-
启动管理程序(boot loader):一支可读取核心文件来运行的软件;
-
核心文件:开始操作系统的功能...
BIOS是英文"Basic Input Output System"的,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到内上一个上的,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存的硬件配置和用户对某些参数的设定。
这个BIOS就是在启动的时候,计算机系统会主动运行的第一个程序了!
接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的配置去取得能够启动的硬盘,并且到该硬盘里面去读取第一个磁区的MBR位置。MBR这个仅有446 bytes的硬盘容量里面会放置最基本的启动管理程序,此时BIOS就功成圆满,而接下来就是MBR内的启动管理程序的工作了。
这个启动管理程序的目的是在加载(load)核心文件,由於启动管理程序是操作系统在安装的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件,然后接下来就是核心文件的工作,启动管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦!
由上面的说明我们会知道,BIOS与MBR都是硬件本身会支持的功能,至於Boot loader则是操作系统安装在MBR上面的一套软件了。由於MBR仅有446 bytes而已,因此这个启动管理程序是非常小而美的。这个boot loader的主要任务有底下这些项目:
-
提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
-
加载核心文件:直接指向可启动的程序区段来开始操作系统;
-
转交其他loader:将启动管理功能转交给其他loader负责。
上面前两点还容易理解,但是第三点很有趣!那表示你的计算机系统里面可能具有两个以上的引导加载程序呢!有可能吗?我们的硬盘不是只有一个MBR而已?但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区boot sector)!
假设MBR内安装的是可同时认识Windows/Linux操作系统的启动管理程序,那么整个流程可以图示如下:
在上图中我们可以发现,MBR的启动管理程序提供两个菜单,菜单一(M1)可以直接加载Windows的核心文件来启动;菜单二(M2)则是将启动管理工作交给第二个分区的启动扇区(boot sector)。当使用者在启动的时候选择菜单二时,那么整个启动管理工作就会交给第二个分区的启动扇区了。当第二个启动管理程序启动后,该启动管理程序内(上图中)仅有一个启动菜单,因此就能够使用Linux的核心文件来开机。
阅读(1319) | 评论(0) | 转发(0) |