操作系统中的引导块
基本上,要让计算机在启动或重新启动时开始运行以获取实例,它需要有一个初始程序才能运行。这个被称为引导程序的初始程序需要简单。它必须初始化系统的所有方面,从 CPU 寄存器到设备控制器和主存储器的内容,然后启动操作系统。
为了完成这项工作,引导程序基本上在磁盘上找到操作系统内核,然后将内核加载到内存中,然后跳转到初始地址以开始操作系统执行。
为什么是 ROM:
对于当今的大多数计算机引导程序都存储在只读存储器 (ROM) 中。
- 这个位置非常适合存储,因为这个位置不需要初始化,而且这里的位置是固定的,这样处理器可以在上电或复位时开始执行。
- ROM 基本上是只读存储器,因此不会受到计算机病毒的影响。
问题在于,更改引导程序代码基本上需要更改 ROM 硬件芯片。由于这个原因,现在大多数系统在引导中都有一个微小的引导加载程序,它的唯一工作是从磁盘中获取完整的引导程序。通过这个,我们现在可以轻松地更改完整的引导程序,并且可以轻松地将新版本写入磁盘。
完整的引导程序存储在磁盘上固定位置的引导块中。具有引导分区的磁盘称为引导盘。引导ROM中的代码基本上是指示读控制器将引导块读入内存,然后开始执行代码。完整的bootstrap程序比boot ROM中的bootstrap loader更复杂,它基本上可以从磁盘上的一个非固定位置加载完整的OS来启动操作系统运行。即使完整的引导程序非常小。
例子:
让我们尝试使用 Windows 2000 中启动过程的示例来理解这一点。
Windows 2000 基本上将其引导代码存储在硬盘的第一个扇区中。此外,Windows 2000 允许将硬盘分成一个或多个分区。这一分区基本上被识别为引导分区,其中基本上包含操作系统和设备驱动程序。
在 Windows 2000 中启动首先运行放置在系统 ROM 内存中的代码。此代码指示系统直接从 MBR 读取代码。除此之外,引导代码还包含列出硬盘分区的表,以及指示从系统引导哪个分区的标志。一旦系统识别出引导分区,它就会从内存中读取第一个扇区(称为引导扇区),并继续引导过程的其余部分,包括加载各种系统服务。
下图显示了在 Windows 2000 中从磁盘启动。