操作系统中的引导块

x33g5p2x  于10个月前 转载在 其他  
字(1.0k)|赞(0)|评价(0)|浏览(168)

基本上,当计算机通电或重新启动时,要开始运行以获取实例,它需要运行一个初始程序。这个被称为引导(bootstrap)的初始程序应该简单。它必须初始化系统的所有方面,从CPU寄存器到设备控制器和主存的内容,然后启动操作系统。
    为了完成这项工作,bootstrap程序基本上会在磁盘上找到操作系统内核,然后将内核加载到内存中,然后跳转到初始地址开始执行操作系统。

为什么是ROM

对于今天的大多数计算机,bootstrap存储在只读存储器(ROM)中。
    1.这个位置适合存储,因为这个位置不需要初始化,而且这里的位置是固定的,这样处理器可以在通电或复位时开始执行。
    2.ROM基本上是只读存储器,因此它不会受到计算机病毒的影响。
    问题是改变引导代码基本上需要改变ROM硬件芯片。由于这个原因,现在大多数系统中都有一个很小的引导加载程序,它唯一的任务就是从磁盘中取出完整的引导程序。通过这一点,现在我们能够轻松地更改整个引导程序,并且可以将新版本写入磁盘。
    完整的引导程序存储在磁盘上固定位置的引导块中。具有引导分区的磁盘称为引导磁盘。 boot ROM中的代码指引读控制器将引导块读入内存,然后开始执行代码。完整的引导程序比 boot ROM中的引导加载程序更复杂,它能够从磁盘上的非固定位置加载完整的操作系统来启动操作系统。尽管完整的引导程序非常小。

示例

让我们以Windows 2000中的引导过程为例来理解这一点。
    Windows 2000基本上将其引导代码存储在硬盘的第一个扇区中。此外,Windows 2000允许将硬盘划分为一个或多个分区。其中一个分区被标识为boot分区,包含操作系统和设备驱动程序。
    在Windows 2000中启动时,首先运行系统ROM内存中的代码。此代码指示系统直接从MBR读取代码。除此之外,引导代码还包含列出硬盘分区的表,以及指示从系统引导哪个分区的标志。一旦系统识别出引导分区,它就会从内存中读取第一个扇区(称为引导扇区),并继续执行引导过程的其余部分,包括加载各种系统服务。
    下图显示了从磁盘引导Windows 2000的过程:

在这里插入图片描述

参考文档

[1]Akashkumar17. Boot Block in Operating System[EB/OL]. [2021年8月9日]. https://www.geeksforgeeks.org/boot-block-in-operating-system/

相关文章