开机流程与主引导分区简单认识

内容均为<鸟哥的linux私房菜>摘取

没有执行软件的硬件是没有用的,除了会电人之外。为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由于操作系统会控制所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的。

既然操作系统也是软件,那我的计算机是如何认识这个操作系统软件并且执行它的?开机时我的计算机还没有任何软件系统,那它要如何读取硬盘内的操作系统文件?这里涉及到计算机的开机程序。

  • BIOS和CMOS

CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序。)这个BIOS就是在开机的时候,计算机系统会主动执行的第一个程序了。

接下来BIOS会去分析计算机里有哪些存储设备,以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序,此时BIOS就功成圆满,而接下来就是MBR内的引导加载程序的工作了。

这个引导加载程序的目的是在加载内核文件,由于引导加载程序是操作系统在安装的时候提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,然后接下来就是内核文件的工作,引导加载程序也功成圆满,之后就是大家所知道的操作系统的任务了。

总结下:整个开机流程到操作系统之前的动作应该是这样的:

  1. BIOS:开机主动执行韧体,会识别第一个可开机的设备
  2. MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序
  3. 引导加载程序(Boot loader);一个可读取内核文件来执行的软件
  • 提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能
  • 载入内核文件:直接指向可开机的程序区段来开始操作系统
  • 转交其他loader:将引导加载功能转交给其他loader负责

    4.内核文件:开始操作系统的功能

多重引导:

假如个人计算机只有一块硬盘,里面分成四个分区,其中第一,二分区分别装了Windows及Linux。如何来选择用windows还是linux?

MBR的引导加载程序提供两个菜单,菜单一可以直接加载windows的内核文件来开机;菜单二则是将加载工作交给第二个分区的启动扇区(boot sector)。当用户在开机时候选择菜单二时,那么整个引导加载工作就会交给第二分区的引导加载程序了。第二个引导加载程序启动后,该引导加载程序仅有一个开机菜单,因此就能够使用linux的内核文件来开机,这就是多重引导的工作情况。

每个分区都有自己的启动扇区(boot sector)

实际可开机的内核文件是放置到各分区内的。

loader只会认识自己的系统分区内的可开机内核文件,以及其他loader

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

  • Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择机会,而且它没有让我们自己选择菜单的功能
  • linux在安装的时候,你可以选择主动覆盖掉MBR以及自己所在分区的启动扇区,而且linux的loader可以手动设置菜单,所以可以在linux的boot leader里面加上windows开机的选项。

 

猜你喜欢

转载自blog.csdn.net/weixin_42489582/article/details/86706925