OS专题-引言

OS专题-引言

为什么要学习操作系统?我也不知道为什么。就是突然想了解下操作系统这个东西是怎么做出来的。电脑中的这些硬件板板是怎么运作的,为什么就能运行这些软件呢?我TM想不通……所以我开始入坑了!

计算机的启动过程大概是这样的:

  1. 开机给电,启动烧录在ROM中的BIOS系统完成硬件自检
  2. BIOS扫描所有存储设备,寻找并运行可用的MBR
  3. MBR加载并启动硬盘中的操作系统

还有一种UEFI引导,是通过.efi文件进行引导,这个我们后面再讨论。

BIOS

BIOS 基本输入输出系统,BIOS 代码所做的工作是一成不变的,所以他是被固化到ROM中的一块只读区域中,在开机时此ROM会被映射到低端1MB内存的顶部,原因是系统在开启时默认是实地址模式(该模式最大寻址范围0-fffff),所以其寻址范围也就被限制在了0xF0000-x0xFFFFF区域中,这64KB的内存就是BIOS的执行代码.

在开机的一瞬间,CPUCS:IP寄存器会被强制初始化为0xF000:0xFFF0,在实地址模式下该地址需要乘以16也就是左移四位加上偏移地址得到,于是0xF000:0xFFF0就等效于0xFFFF0此处的地址距离0xFFFFF只有16个字节的空间,里面存放着一条jmp far f000:e05b = fe05b的汇编指令,该指令将跳转到真正的BIOS开始的位置.

接着BIOS将会通过自身的代码对硬件进行自检测,在初始化硬件后,则开始向内存0x000-0x3ff中初始化数据结构以及拷贝中断向量表,紧接着BIOS将会通过调用int 19h中断,此中断用以检测计算机中的硬盘,如果检测到0盘0道1扇区末尾的两个字节是0x55,0xaa则认为此扇区确实存在,于是就会将此区域中的内容,加载到内存0x7c00的位置,并通过一条jmp far 0:0x7c00h的指令跳转到该位置执行,这样BIOS就将CPU控制权交给了MBR了,而BIOS将会再次睡去.

搬运自:https://www.cnblogs.com/LyShark/p/16517379.html

MBR

MBR的意思是”主引导记录”,是IBM公司早年间提出的。它是存在于磁盘驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动系统。如果你安装了Windows,其启动信息就放在这一段代码中——如果MBR的信息损坏或误删就不能正常启动Windows,这时候你就需要找一个引导修复软件工具来修复它就可以了。Linux系统中MBR通常会是GRUB加载器。

GPT

GPT的意思是GUID Partition Table,即”全局唯一标识磁盘分区表”。他是另外一种更加先进新颖的磁盘组织方式,一种使用UEFI启动的磁盘组织方式。最开始是为了更好的兼容性,后来因为其更大的支持内存(MBR分区最多支持2T的磁盘),更多的兼容而被广泛使用,特别是苹果的MAC系统全部使用GPT分区。GPT不在有分区的概念,所有C D E F盘都在一段信息中存储。可以简单的理解为更先进但是使用不够广泛的技术。

MBR VS GPT

因为兼容问题,GPT其实在引导的最开始部分也有一段MBR引导,也叫做”保护引导”,这是为了防止设备不支持UEFI 。它们有如下区别:

  • 内存支持:MBR最多支持2T,而GPT理论上是无限制的。
  • 分区:MBR最多支持四个主分区,GPT没有限制。
  • 系统:Win7只能用MBR分区(也可以但是很麻烦,不建议),从Win8开始微软建议你使用GPT
  • 其它:GPT是由UEFI启动的,而UEFI是后来才提出的概念,兼容性和稳定性不如BIOS+MBR

OS专题-引言
https://blog.cikaros.top/doc/28e04973.html
作者
Cikaros
发布于
2022年9月22日
许可协议