操作系统探索之计算机的启动(一)

2019-04-14 16:50发布

我们可以定义计算机启动为计算机上电到计算机操作系统启动等待用户使用的过程。这里先把启动过程分为两部分,硬件部分和软件部分。
硬件启动我们认为上电后就完成了,接下来说一下软件部分的启动,也就是操作系统的启动。

一、启动流程

  • 计算机上电后,系统RESET,CPU复位,内存清零,寄存器CS:0xFFFFH IP:0x00H,指向0xFFFF:0x00H的内存单元,即ROM-BIOS的入口,开始执行BIOS程序;
  • BIOS入口只有一条指令:JMP START,然后跳到硬件自检程序,硬件自检没有问题后,将这些部件初始化;
  • BIOS在0x00000H建立中断向量表,并在0x00400建立BIOS数据区。
  • BIOS根据启动顺序(可以在BIOS中设置的设备启动顺序),检查引导设备的第一个扇区(512B,即主引导扇区),并将其加载到内存0x7c00H处。
  • 主引导记录(MBR)将操作系统加载到内存,MBR把操作权交给启动设备上的操作系统。

二、BIOS

BIOS是英文”Basic Input Output System”的缩略词,直译过来后中文名称就是”基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。(引自百度百科)
计算机的运行就是在执行程序,执行程序就要把程序加载到内存中,要想把程序加载到内存中就要先执行相应的程序。在计算机启动时的这个矛盾不解决不能启动计算机,而BIOS就是为了解决这个问题,提前烧到ROM中,用来启动计算机。

三、主引导扇区

把包含MBR的扇区称为主引导扇区,习惯称为MBR扇区,简称MBR。
主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。(引自百度百科)
BIOS执行完后会把MBR加载到内存中,MBR中保存了要引导的操作系统的位置,来引导并将CPU控制权交给操作系统。MBR在可启动设备的第一个扇区中,不属于任何分区,共占512B,由三部分组成:
  • 主引导记录(MBR),占446B空间;
  • 磁盘分区表项(DPT),4个分区表项,每个占16字节,共64B;
  • 主引导记录签名,0x55AAH,占2B空间,作为结束标志。
存贮字节位 内容及含义 第1字节 引导标志。
若值为0x80H表示活动分区,
若值为0x00H表示非活动分区 第2、3、4字节 本分区的起始磁头号、扇区号、柱面号。
其中:
磁头号——第2字节;
扇区号——第3字节的低6位;
柱面号——为第3字节高2位+第4字节8位。 第5字节 分区类型符。
0x00H——表示该分区未用(即没有指定);
0x06H——FAT16基本分区;
0x0BH——FAT32基本分区;
0x05H——扩展分区;
0x07H——NTFS分区;
0x0FH——(LBA模式)扩展分区(83H为Linux分区等)。} 第6、7、8字节 本分区的结束磁头号、扇区号、柱面号。
其中:
磁头号——第6字节;
扇区号——第7字节的低6位;
柱面号——第7字节的高2位+第8字节。
第9、10、11、12字节本分区之前已用了的扇区数。 第13、14、15、16字节 本分区的总扇区数。

四、启动设备

可启动设备有很多,比如U盘、软盘,当然最常用的还是硬盘。U盘启动很小的操作系统时,可以直接将整个U盘上的操作系统代码直接加载到内存中,跳转到操作系统进行执行。
磁盘启动有几种方式
  • 通过激活分区的卷引导记录(VBR);
  • 启动管理器,执行完446字节的MBR后执行启动管理器,选择执行的操作系统,在多操作系统中比较常见;
  • 扩展和逻辑分区。

在制作操作系统时,首先就是制作MBR,用来引导后续写的操作系统。