您的位置:首页 > 其它

关于电脑的开机机制

2015-12-04 13:56 246 查看

1.前言

我们都了解,没有执行软件癿硬件是没有用的,除了会电人之外..., 而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由于操作系统会控制所有的硬件并且提供核心功能, 因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件档案不执行该软件来达成各项软件的执行目的。问题是,你有没有发现,既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并执行它的?
明明开机时我的计算机还没有任何软件系统,那他要如何读取硬盘内的操作系统档案啊?嘿嘿!这就得要牵涉到计算机的开机程序了! 下面就让我们来谈一谈这个开机程序吧!

2.正文

在计算机中有可爱的BIOS和CMOS这两个东西, CMOS是记录各项硬件参数并嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个韧体(再次说明, 韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候,计算机系统会主动执行的第一个程序了! 接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的设定去取得能够开机的硬盘, 并到该硬盘里面去读取第一个扇区的MBR位置。
MBR这个仅有446 bytes的硬盘容量里面会放置最基本的开机管理程序, 此时BIOS就功成圆满,而接下来就是MBR内的开机管理程序的工作了。 这个开机管理程序的目的是在加载(load)核心档案, 由于开机管理程序是操作系统在安装时所提供的,所以它会认识硬盘内的文件系统格式,因此就能够读取核心档案, 然后接下来就是核心档案的工作,开机管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦! 简单的说,整个开机流程到操作系统之前的动作应该是这样的:

1. BIOS:开机主动执行的韧体,会认识第一个可开机的装置;

2. MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序;

3. 开机管理程序(boot loader):一支可读取核心档案来执行的软件;

4. 核心档案:开始操作系统的功能
由上面的说明我们会知道,BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR上面的一套软件了。由于MBR仅有446 bytes而已,因此这个开机管理程序是非常小而美的。 这个boot loader的主要任务有底下这些项目:

1.提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能!

2. 载入核心档案:直接指向可开机的程序区段来开始操作系统;

3. 转交其他loader:将开机管理功能转交给其他loader负责。

上面前两点还容易理解,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的开机管理程序呢! 有可能吗?我们的硬盘不是只有一个MBR吗?是没错啦!但是开机管理程序除了可以安装在MBR之外, 还可以安装在每个分割槽的启动扇区(boot sector)喔!纳尼?分割槽还有各自的启动扇区喔? 没错啊!这个特色功能造就『多重引导』的功能啊! 我们举一个例子来说,假设你的个人计算机只有一个硬盘,里面切成四个分割槽,其中第一、二分割槽分别安装了Windows及Linux,
你要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR内安装的是可同时认识Windows/Linux操作系统的开机管理程序, 那举整个流程可以图标如下:



在上图中我们可以发现,MBR的开机管理程序提供两个选单,选单一(M1)可以直接加载Windows的核心档案来开机; 选单二(M2)则是将开机管理工作交给第二个分割槽的启动扇区(boot sector)。当使用者在开机的时候选择选单二时, 那么整个开机管理工作就会交给第二分割槽的开机管理程序了。 当第二个开机管理程序启动后,该开机管理程序内(上图中)仅有一个开机选单,因此就能够使用Linux的核心档案来开机啰。
这就是多重引导的工作情况啦!我们将上图作个总结:

1. 每个分割槽都拥有自己的启动扇区(boot sector)

2. 图中的系统槽为第一及第二分割槽,

3. 实际可开机的核心档案是放置到各分割槽内的!

4. loader只会认识自己的系统槽内的可开机核心档案,以及其他loader而已;(感觉和数据结构的链表有点像)

5.loader可直接指向或者是间接将管理权转交给另一个管理程序。

那现在想一想,为什么人家常常说:『如果要安装多重引导, 最好先安装Windows再安装Linux』呢?这是因为:

1.Linux在安装的时候,你可以选择将开机管理程序安装在MBR或各别分割槽的启动扇区, 而且Linux的loader可以手动设定选单(就是上图的M1, M2...),所以你可以在Linux的boot loader里面加入Windows开机的选项;
2.Windows在安装的时候,他的安装程序会主动地覆盖掉MBR以及自己所在分割槽的启动扇区,你没有选择的机会, 而且他没有让我们自己选择选单的功能。

因此,如果先安装Linux再安装Windows的话,那MBR的开机管理程序就叧会有Windows的项目,而不会有Linux的项目 (因为原本在MBR内的Linux的开机管理程序就会被覆盖掉)。 那需要重新安装Linux一次吗?当然不需要,你只要用尽各种方法来处理MBR的内容即可。 例如利用全中文癿spfdisk(http://spfdisk.sourceforge.net/)软件来安装认识Windows/Linux的管理程序, 也能够利用Linux的救援模式来挽救MBR即可。

3.后记

一个小小的电脑开机却可以牵扯到这么多的知识,本来觉的计算机原理课是一门水课,现在为了学习linux却不得不返回去重新看过。感觉是有点印证了那句话“存在即合理”,不得不说先得了解机器才可以更加深入地学习计算机!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: