系统引导过程概述以MBR,PBR,BIOS,boot loader各个名词解析

2023-11-25 04:50

本文主要是介绍系统引导过程概述以MBR,PBR,BIOS,boot loader各个名词解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前情:

因为个人的需要,要在mac上安装三个系统,mac+win10+ubuntu。

mac上安装多系统实现多引导的情况比一般电脑的复杂,其中的理论知识会牵涉到各种各样的名词,什么GUID、GPT、EFI 之类的……在安装以前,需要复习一下基本的计算机知识,于是准备写两篇博文,上篇介绍基本的磁盘分区,MBR、PBR、BIOS以及系统引导的过程,下篇介绍mac下关于GUID、GPT、EFI,以及如何实现三系统。

这篇文章是上篇:系统引导过程概述以&MBR,PBR,BIOS各个名词解析

知识补充:

1、磁盘的组成:

磁盘的组成(主要有盘片,机械手臂,磁头与主轴马达所组成),而数据的写入其实在盘片上面。盘片又可以细分出扇区(sector)、柱面(cylinder)两种单位,其中扇区每个为512bytes。

整块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息,分别是:

1).主引导程序即主引导记录(MBR,Master Boot Record)(占446个字节)
放置引导加载程序的地方。其中引导加载程序(boot loader)除了可以安装在MBR,还可以安装在PBR(下面解释)
2).磁盘分区表项(DPT,Disk Partition Table)  (占64个字节)
每条分区记录占16字节,因此最多容纳4个分区记录,它们有主分区(primary)和扩展分区(extend)构成。其中扩展分区最多只能有一条。但这并代表整个磁盘只能分四个区,当分区多余四个的时候,前三个为主分区,剩下的分区由扩展分区继续分区出来,也叫逻辑分区(logical)。记住能够格式化的只要主分区和逻辑分区,扩展分区不能格式化。


3).结束标志(占2个字节)
其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。

通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR),同样也是512个字节大小。


2、磁盘的分区

在每个分区里,又有两个重要概念:

1)PBR,即 Partition Boot Record ,位置在每个磁盘分区的开始部分,占用扇区不定,所在的扇区又叫做当前分区的(boot sector)。这个扇区一般保存着操作系统引导程序(boot loader)的所在位置。下图的红色部分。那既然MBR里已经有boot loader了,为什么又要设一个PBR里再保存boot loader呢?原因是不同操作系统文件格式不一样,每种操作系统都有自己的boot loader,用自己的boot loader才能载入自己的内核文件。因此,每个操作系统默认是会安装一套boot loader到自己的分区的PBR中,且可以选择是否也安装到MBR上。如果选择安装到MBR的话,理论上在MBR和PBR里都有一份boot loader程序。
2)文件系统,File System ,操作系统对磁盘的所有操作都需要经过文件系统,删除文件指的是在文件系统里删除文件的索引条目,创建文件就是在在文件系统里添加索引条目并将具体数据写入磁盘。常见的文件系统格式有: FAT exFAT NTFS HFS+ 。文件系统位置一般在PBR之后。下图黄色部分。


3、BIOS与CMOS

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

4、boot loader

上面提了那么多次的boot loader,那么boot loader主要完成什么工作呢?而且系统的MBR只有一份,要怎么执行boot sector里面的loader呢?boot loader的主要功能如下:

1)提供菜单:用户可以选择不同的启动选项,这也是多重引导的重要功能!选择不同的内核来启动。

2)加载内核文件:直接指向可启动的程序区段来开始操作系统。

3)转交其他loader:将引导装载功能转交给其他loader负责。可以加载其他boot sector内的boot loader。

常见的boot loader有linux下的grub,windows的bootmgr。

系统引导过程

1、传统BIOS引导过程:

计算机器开机后,固化在 ROM 里的 BIOS 就会被加载到内存运行,BIOS 自检完毕以后加载 COMS 的参数,通过 COMS 的参数, BIOS 程序加载启动磁盘的 MBR 到内存里运行。通过运行 MBR 的代码,记录在 MBR 分区表中,标记为活动分区的磁盘分区 PBR 被加载到内存。与 MBR 类似,PBR 在运行后加载操作系统的引导程序到内存运行,例如 Windows 的 bootmgr 。当引导程序运行后,操作系统内核就被加载运行,完成从 BIOS 程序中接手的引导流程。

2、linux启动流程一览:

这里深入地补充一下linux的启动具体流程:
    (1)加载 BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;
    (2)读取并运行第一个启动装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);
    (3)依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
    (4)在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯;
    (5)init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境 (如网络、时区等);
    (6)init 运行 run-level 的各个服务之启动 (script 方式);
    (7)init 运行 /etc/rc.d/rc.local 文件;
    (8)init 运行终端机模拟程序 mingetty 来启动 login 程序,最后就等待使用者登陆啦;

3、windows和linux双系统引导:

由于boot loader可以将控制权转交其他lodaer,将引导装载功能转给其他loader负责,可以实现多重引导。

像windows和linux在安装的时候,都会主动将MBR和自己所在分区的PBR里。不过windows的loader默认不具有控制权转交功能,因此不能使用windows的loader来加载linux的loader。如果先安装linux再安装windows,windows覆盖了MBR中linux的boot loader,且不给linux的boot loader做转交,就不能实现双引导启动了。这也就是为什么要先安装windows,再安装linux了。

                       


参考:

《鸟哥的linux私房菜》基础篇

【Mac技术组】Mac 系统引导过程概述 & BootCamp 的秘密

这篇关于系统引导过程概述以MBR,PBR,BIOS,boot loader各个名词解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423146

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作