由于操作系统会提供所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的

  问题是你有没有发现,既然操作系统也是软件,那么我的计算机优势如何认识这个操作系统 软件并且执行它呢?开机时我的计算机系统还没有任何软件系统,那他要如何读取硬盘内的操作系统文件呢?这就要牵涉计算机的开机程序了。下面我们来谈一下计算机的开机程序

     在计算机概论里面我们谈到那个可爱的BIOS 和CMOS两个东西。CMOS是记录各项硬件参数且嵌入在主板上面得存储器,BIOS则是一个写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候计算机系统会主动执行的第一个程序了。

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

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

     用一句通俗的话说,BIOS是帮着找到家门(硬盘),硬盘中的引导加载程序就是帮着找到家里的钱(内核),然后操作系统就开始工作了

简单的说,整个开机流程到操作系统之前的动作应该是这样的

BIOS:开机主动执行的韧体,会认识到第一个可开机的设备

     MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序

     引导加载程序(Boot loader):   一支可读取内核文件来执行的软件

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

 由上面的说明,我们会知道,BIOS和MBR都是硬件本身会支持的功能,至于Boot Loader则是操作系统安装在MBR上面的一套软件。由于MBR仅有446bytes而已,因此这个引导加载程序是非常小而完美的。这个BootLoader的主要任务是一下项目。

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

   载入内核文件: 直接指向可开机的程序段来开始操作系统。

   转交其他Loader:将引导加载功能转交给其他loader负责

 上面的前两点还容易理解,但是第三点很有趣!那表示你的计算机系统里面可以具有两个以上的引导加载程序呢。有可能吗?我们的硬盘不是只有一个MBR而已?但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区。

    举一个例子来说,假设你的个人计算机只有一块硬盘,里面分成4个分区。其中第一,二分区分别安装了Windows及Linux,你要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR内安装的是可以同时识别Windows和Linux操作系统的引导加载程序,那么整个流程如下

MBR的引导加载程序提供提供两个菜单,菜单一(M1)可以直接加载Windows的内核文件来开机,菜单二(M2)则是将引导加在工作交给第二个分区的启动启动扇区,当用户在开机的时候选择菜单二时,那么整个引导加载工作就会交给第二分区的引导加载程序了。第二个引导加载程序启动后,该引导加载程序上面只有一个开机菜单,因此就能够使用Linux内核来开机。
   做个总结就是这样:
  1,每个分区都有自己的启动扇区
  2,图中的系统分区为第一及第二分区
  3.实际可开机的内核文件是放置到各分区内的
  4,loader只会认识自己的系统分区内的可开机内核文件,以及其他的Loader而已
  5,Loader可直接指向或者是间接将管理权交给另一个管理程序
现在想一下,为什么人家常说:”如果要安装多重引导,最好先安装Windows再安装Linux呢“?
  这是因为Linux在安装时,你可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的Loader可以手动设置菜单(M1 M2),所以你可以在Linux的Boot Loader里面加入Windows开机选项
   Windows在安装的时候,他的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且他没有让我们自己选择菜单功能

开机流程与主引导分区(MBR)相关推荐

  1. 开机流程与主引导分区(MBR)——鸟哥私房菜

    在前篇随笔中,已经谈到了CMOS与BIOS,CMOS是记录各项硬件参数(包括系统时间.设备的I/O地址.CPU的电压和频率等)且嵌入到主板上面的存储器,BIOS是一个写入到主板上的韧体(韧体是写入到硬 ...

  2. LINUX鸟哥私房菜学习笔记之开机流程与主引导分区(MBR)

    ### BIOS与CMOS BIOS 是一个写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序),BIOS是在计算机开机的时候系统主动执行的第一个程序 CMOS 是记录各项硬件参数且嵌入在主板 ...

  3. Linux系统主引导扇区MBR详解

    简介 在硬盘中,硬盘的0柱面0磁头第一个1扇区称为主引导扇区,也叫主引导记录-MBR(main boot record),其中MBR是以下三个部分组成 1.Bootloader,主引导程序(446个字 ...

  4. 磁盘结构简单介绍,硬盘工作原理,接口种类IDE,SATA,SCSI,FC接口,主引导技术MBR,文件系统类型

    磁盘的结构 物理结构: 盘片:硬盘有多个盘片,每个盘片2面 磁头:磁盘里最贵的一个,非接触式,读写合一分离式 数据结构: 扇区:盘片被平均分割成多个扇形区域,每个存放512字节 磁道:同一个盘片不同半 ...

  5. BIOS和UEFI的区别,系统安装引导以及MBR和GPT磁盘分区

    前言 安装系统是计算机专业的日经操作,然而就算你是身经百战,也可能会遇到各种各样棘手的问题,对系统的启动流程也是似懂非懂(俺也一样),每次碰到问题都会花去大量的时间去查询解决方案,最后很多时候都免不了 ...

  6. 主引导扇区及主引导记录MBR的详细说明

    引导扇区在每个分区里都存在,但是我们常说的*主引导扇区*是硬盘的 第一物理扇区.它由两个部分组成:即主引导记录MBR和硬盘分区表DPT.在 总共512字节的主引导分区里其中MBR占446个字节(偏移0 ...

  7. Linux主分区文件系统,Linux_Linux磁盘和文件系统管理,1、 分区MBR(Master Boot Recor - phpStudy...

    Linux磁盘和文件系统管理 1. 分区 MBR(Master Boot Recorder)主引导分区仅提供最多4个分区,主分区(Primary,P)与扩展分区(Extended,E),如3P+1E, ...

  8. 主引导扇区(MBR),分区表(DPT)及活动分区(DBR)

    主引导扇区:硬盘的0柱面.0磁头.1扇区(也叫主引导记录MBR),大小为512Byte. 分区表(DPT):位于主引导分区,从偏移01BEH开始到偏移01FDH结束的64字节. 活动分区DBR:DBR ...

  9. 主引导区,分区表,硬盘逻辑锁,坏道四种故障修复

    下面根据主引导区修复,分区表损坏修复,硬盘逻辑锁修复,产生坏道的修复四种故障类型给大家列出解决的方法和对策: 1)主引导区修复 修复此故障最简单的方法就是使用高版本DOS的Fdisk带参数/mbr运行 ...

最新文章

  1. 【Kaidi安装问题】install_mkl.sh报错,没有数字签名
  2. easyui的Pagination单独使用
  3. 一个普通大学生的经历
  4. Spring学习(8)--- @Autowired注解(一)
  5. Java 匿名内部类总结【复习】
  6. Android 通过Uri获取Bitmap对象
  7. JAVA并发篇_公平锁与非公平锁
  8. 20190803:栈实践(最小栈)
  9. Oracle连续排名,oracle不连续排名rank() over(order by column desc),连续排名 dense_rank over(order by)...
  10. Oracle数据库进行简单优化,Oracle数据库性能优化
  11. python网络部分
  12. VT系列一:VT简述
  13. 中国口罩市场现状调研及投资前景预测报告2022-2028年
  14. 通过Hyper-V的方式快速安装Linux虚拟机
  15. 什么是mysql节点_什么是MySQL集群
  16. android P有哪些小米手机,Android P来啦!开发者版支持七款机型 OV小米一加在列
  17. 7-237 组合数的和
  18. RSA加解密过程详解
  19. 吴恩达深度学习思维导图--来自刚入门的学生的自制版
  20. curve25519 - 数学的魅力

热门文章

  1. 信息安全主动攻击和被动攻击_信息安全中的主动和被动攻击 网络安全
  2. 找取照片上的25个特征点,并保存结果
  3. php 载入css就可以显示,如何在进度条加载后显示页面
  4. 函数指针指向类的静态成员函数
  5. 树莓派远程监控的实现
  6. 线程间通信————同步
  7. static、const用法
  8. 线程控制 12 | 线程属性
  9. 【好文推荐】mysql创建数据库语句utf-8
  10. Java虚拟机学习集锦是我攒来的,看这篇文章准没错!