【操作系统】MBR主引导目录结构以及作用

news2024/11/8 21:05:54

一.BIOS和MBR的交接仪式

        当BIOS检测完内存、显卡,把硬盘等外设加载进来后,便开始在内存0X00~0X3FF处建立起数据结构、中断向量表,并且填写中断例程。完成这一系列的操作后便开始寻找硬盘(如果硬盘不止一个的话,则会通过遍历的方式一个个地找到每个硬盘),在每个能找到的硬盘的第00磁道第1扇区里面,看看此扇区最后两个字节是否为0X550XAA。

        如果找到该扇区的末尾两个字节就是0x55和0xAA,则说明这个扇区里面存放的程序为大名鼎鼎的MBR主引导目录(Master Boot Record),这里的潜台词或许你没有注意到,也就是如果第00磁道第1扇区的末尾两个字节不是0x550xaa,那么即使有执行的指令,也不会被认定为MBR来执行

         找到MBR程序之后,BIOS便将其加载到物理地址0x7c00,然后条状到0X7c00处,至此,BIOS完成了它全部的任务,将控制权交给MBR继续运行,BIOS又开始沉沉睡去:

         在此我们先打住,如果你一口气读完以上的全部内容,或许你会有很多的疑惑:

  • 为什么是第0磁盘0磁道的第1扇区?
  • 为什么尾数一定要0x55和0xaa才能认定是MBR程序?
  • 为什么一定要把程序放到0x7c00这个位置?

二.方便查找

        我们来想象一下如果MBR程序如果不放在指定的地方,且尾数不以0x550xaa结尾的话,会出现什么问题?首先BIOS因为不知道MBR程序在哪里,所以它只能一个地方一个地方地去找(也就是传说中的穷举法),找也就算了,反正区域就这么大,花时间找总是能找到的,问题是BIOS也不知道MBR究竟长啥样,这你可咋找啊,就跟你想去图书馆找一本书,你不是到它在什么位置,也不知道它长啥样叫啥名字,只是听别人说过很好看推荐你看看。

         这时候有位管事的人就出来发话了:哎哎哎!你可别在这里跑来跑去了,这样吧,以后咋俩就定下个规矩,我把MBR程序放在固定的位置,就放在第0磁盘的0磁道的第1扇区吧,以后你就直接去这个地方找它就行了,但是这个位置可能会有很多不是MBR的东西,你就挨个挨个问问,谁的尾数是0x55和0xaa啊,有程序回你的话。那个就是你要找的那个MBR了!

三.为什么是0x7c00

        这个问题属于历史遗留问题,得从全球第一台个人电脑,众多X86电脑的开山鼻祖——IBM 5150开始说起。

        首先初代个人电脑,使用的操作系统DOS 1.0版本,该系统的最小内存估计是32KB,所以BIOS程序就按照32KB来开发的。可用空间这么小,MBR应该放到哪个位置才是适合的呢?在这里应该需要考虑三个因素:

  • 首先MBR程序不能过早地被其他程序覆盖掉,原因显而易见,这程序要是还没执行就被其他程序覆盖了,那这个系统还能开得起来吗?
  • 其次MBR程序也不能覆盖已经存在的数据,原因也显而易见,打开电脑发现之前保存的学习资料奇迹般丢失了,一问原来是你这个MBR在这里雀占鸠巢,不生气气吗?
  • MBR本身也是一个程序,是程序就要用到栈,虽然自己本身只有512字节的大小,但是程序本身所用到的栈也是要空间的,所以分配给MBR的空间至少得大于512个字节。

        所以,为了防止和别的数据抢空间,还要保持自己有足够的空间,MBR决定当个绅士站到队伍的最后一位,等别的数据都占到空间后,自己再用剩下的空间,这时候排队开始进行了:这个地址用于存放中断向量表……那个地址当作硬件地址映射……,轮到MBR的时候还剩下末尾的最后1KB字节容量,那么MBR就顺理成章地占为己有,已知32KB等于32768个字节,那么换算成十六进制则是0x8000:

         减去MBR占用的1KB(1024Byte),最后得出的结果就是0x7c00:

         所以,从0x7c00开始一直到末尾0x8000这1KB的地方,就是MBR的空间。

四.MBR的结构组成以及作用 

        了解完以上的知识后,我们再来观察下这个占据了512个字节的MBR究竟藏着啥内容:

         可以看到,MBR的主体部分用446字节存储了启动引导程序,这里就能看到MBR的主要功能是存储启动引导程序GRUB,如果细心观察开机过程你就会发现有那么几秒钟会进入到GRUB页面让你选择需要进入的内核版本,根据不同的内核进入不同的系统,属于系统还没进,但即将进去的模式,下面再详细讲解。64字节储存了分区表,最后两个字节就是大名鼎鼎的0x55和0xaa。在这里插一个额外的知识,分区表一共占据64个字节,每个分区必须占据16个字节,所以每块硬盘最多只能分4个主分区。而这16个字节每个都有它重要的作用:

五. 引导程序GRUB的作用

        由MBR程序读取出来的启动引导程序GRUB,其最大的作用就是加载操作系统内核,进入到下一个阶段(也就是Boot Loader内核加载器阶段),如果不知道什么是GRUB的话请看下面这张网图回忆一下:

         不同的操作系统GRUB也是不一样的,比如windows和linux的GRUB页面会被互相覆盖,所以如果要安装双系统的话需要考虑系统的安装顺序,否则将出现GRUB互相覆盖的情况。

        最后补充一个知识,因为每块硬盘只能存在一个MBR程序(你可以理解为0磁盘0磁道1扇区就这么一个),所以如果要安装多系统的话,需要在分区里单独划分出一个扇区,叫引导扇区,里面再安装对应的操作系统的引导程序,但BIOS 只能找到 MBR 中的启动引导程序,而找不到在分区的引导扇区里面的引导程序。所以要想完成多系统启动,需要在MBR 的引导程序(GRUB)添加调用在分区的引导扇区中的其他启动引导程序的功能(很拗口,得多看几遍)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1114436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么要在电影院装监控?有什么作用?

近期小编在网上看到有很多人在讨论:电影院的摄像头有多高清?看电影时的小动作放映员都能看得一清二楚?答案是:是的。但大家也不必有心理负担,电影院的监控目的不是为了监控观众,更多的是为了保障观影者的权…

基于Python实现的一款轻量、强大、好用的视频处理软件,可缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕等

Quick Cut 是一款轻量、强大、好用的视频处理软件。它是一个轻量的工具,而不是像 Davinci Resolve、Adobe Premiere 那样专业的、复杂的庞然大物。Quick Cut 可以满足普通人一般的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段…

【C++杂货铺】一文总结C++中的异常

文章目录 一、C语言传统的处理错误的方式二、C异常三、异常的使用3.1 异常的抛出和捕获3.1.1 异常的抛出和匹配原则3.1.2 在函数调用链中异常栈展开匹配原则 3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点6.1 优点6.2 …

C# 给List编个序号

给List编个号 int[] numbers { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };int i 0;var q (from n in numbersselect (index:i,number:n)).ToList();foreach (var v in q) {Console.WriteLine($"i {v.index}, v {v.number}"); }

设计模式-单例模式 (Singleton)

单例模式 (Singleton) 单例模式是一种创建型设计模式,它确保类只有一个实例,并提供了一种访问该实例的全局方法。这种模式有助于确保系统中的某些组件只有一个实例,并提供了一种方便的方法来访问该实例。 1、单例类只…

VM16Pro的Win10虚拟机安装Linux子系统Kali

VM16Pro的Win10虚拟机安装Linux子系统Kali 一、启用Windows功能二、配置WSL三、安装Kali四、安装kali基本工具包五、图形化六、适用的报错 一、启用Windows功能 启用后需重启二、配置WSL wsl --update #管理员启动Powershell执行,完成后将下面注册表Start更改为…

VR全景加盟创业,让你多一条赚钱机会

都说打工人,打工魂,那么打工族的你是否每月工资入不敷出呢?是否感觉房贷、车贷、子女、家庭压力大呢?如果你是想创业赚钱,但是没有门路的话,不妨试试看VR全景加盟,VR全景作为一种全新风口项目&a…

Softing为连接PROFIBUS网络提供多种接口产品方案

一 应用广泛的PROFIBUS网络 PROFIBUS是基于统一、标准且独立于应用的通信协议。据PI-China统计,在工业领域里早已有近5090万个PROFIBUS设备被安装在了超过900万节点中。PROFIBUS网络的广泛应用得益于PROFIBUS协议的开放性——用户可以很方便地在PROFIBUS网络的任意…

map和set底层实现【C++】

文章目录 map和set模板参数红黑树结点中的数据模板参数中的仿函数正向迭代器运算符重载--运算符重载 库里的写法setmapRBTree map和set模板参数 set是K模型的容器&#xff0c;而map是KV模型的容器 如何用一棵KV模型的红黑树同时实现map和set template<class K ,class V>…

简单的聊一聊如何使用CSS的父类Has选择器

最近的:has()选择器允许您对父元素和其他祖先应用样式&#xff0c;本文将向您展示如何在Web应用程序开发中使用它。 在CSS的世界中&#xff0c;选择器是驱动我们在网页上看到的美丽且响应式设计的工作的马。它们允许开发者根据元素的属性、位置和关系来选择和样式化HTML元素。 …

OPPO手机如何添加日程桌面插件?

对于不少网友来说&#xff0c;每天生活、学习、工作相关的日程事项非常多&#xff0c;为了避免自己在忙碌中忘记待办的日程&#xff0c;就会在手机的待办APP中逐条记录下来当天的日程安排。不过还有一些小伙伴表示&#xff0c;如果忘记定时查看这些待办事项怎么办呢&#xff1f…

智慧公厕:打造便捷环保的城市出行新体验

公共厕所&#xff0c;作为城市基础设施的一部分&#xff0c;一直以来备受关注。然而&#xff0c;传统的公厕管理方式往往难以满足人们对于卫生、舒适、便捷的需求。为了改善这一现状&#xff0c;智慧公厕应运而生。 智慧公厕&#xff0c;顾名思义&#xff0c;是运用物联网、云…

V90伺服驱动器控制(PN版本)

V90伺服驱动器脉冲控制常用参数和接线,请查看下面文章链接: SMART PLC和V90伺服实现外部脉冲位置控制-CSDN博客SMART PLC脉冲轴控功能块详细介绍请参看下面文章链接:S7-200 SMART PLC自定义脉冲轴控功能块AxisControl_FB(梯形图)_RXXW_Dor的博客-CSDN博客博途1200/1500PL…

django 项目基本配置

项目工程初始化 安装框架 pip install django使用命令创建项目 django-admin startproject 项目名称效果 根目录创建apps用以放置所有包 切换至apps目录创建子应用 python ../manage.py startapp usermuxi_shop_back/settings.py # Build paths inside the project lik…

Android JKS MD5 SHA1 公钥生成 私钥生成 APP备案 内容获取

1 查看 jks keytool -list -v -keystore /Users/lipengfei/Desktop/android/androidproject.jks密钥库类型: jks 密钥库提供方: SUN您的密钥库包含 1 个条目别名: ddgj 创建日期: 2018-11-16 条目类型: PrivateKeyEntry 证书链长度: 1 证书[1]: 所有者: CNcn, OUcn, Ocn, Lcn,…

Chrome浏览器免费广告拦截器插件 —— Adblock

背景&#xff1a;我们在浏览网页的过程中经常会有看到一些广告&#xff0c;这些广告不仅影响正常浏览&#xff0c;甚至会遮挡主要内容&#xff0c;给用户造成极大困扰。今天分享一去除广告或者指定元素的优秀插件——Adblock 屏蔽广告前&#xff1a;页面中总是会出现一些广告 …

CVE-2023-38831漏洞实例

一、漏洞样本 DIPLOMATIC-CAR-FOR-SALE-BMW.rar样本&#xff0c;在我们双击DIPLOMATIC-CAR-FOR-SALE-BMW.pdf解压并打开时&#xff0c;就会触发漏洞运行同目录下的同文件名程序DIPLOMATIC-CAR-FOR-SALE-BMW.pdf .cmd&#xff1a; 二、恶意载荷分析 释放文档并打开&#xff0c…

广告流量变现:解析数字时代的商机

在数字时代&#xff0c;广告流量变现成为了许多企业和个人的重要商机。通过巧妙地利用广告流量&#xff0c;可以实现盈利和增加收入的目标。本文将深入探讨广告流量变现的概念、方法和策略&#xff0c;帮助读者更好地把握这一商机。 一、广告流量变现的概念 广告流量变现是指通…

39 WEB漏洞-XXEXML之利用检测绕过全解

目录 涉及案例pikachu靶场xml数据传输测试-回显、玩法、协议、引入玩法-读文件玩法-内网探针或攻击内网应用(触发漏洞地址)玩法-RCE引入外部实体dtd无回显-读取文件协议-读文件&#xff08;绕过&#xff09;xxe-lab靶场登陆框xml数据传输测试-检测发现CTF-Jarvis-OJ-Web-XXE安全…

智能低压配电房解决方案

随着科技的发展&#xff0c;数字化经济的提出&#xff0c;以及各行各业在数字化经济发展的浪潮中&#xff0c;配电房的数字化、智能化、安全化、节能化提供了新的解决方案和新思路。 系统概述&#xff1a; 力安科技智能低压配电房通过在电力设备终端加装电力探测器、物…