1. Booting

[Home]


Booting是一个重要的阶段,它包含裸机自身的启动,以及OS的启动两个部分。

 

当机器一旦被加电,一台静态的处于“休眠”状态的机器就变成了一台动态的处于“活动”状态的不知疲倦的工作者。它开始的第一个工作就是Booting,事实上,机器自身的Booting才是真正意义上的Booting,而OS的Booting对于机器自身来讲,和OS的内核以及Application的运行没有什么区别。

 

机器自身的Booting最主要的工作就是自检——检查机器自身的各种配置,比如内存,显卡,磁盘等等。另外,它还要为OS或其它程序(对于机器来讲,他们是一样的)准备各种环境。最终机器会从某个指定的位置读入一块固定大小的外来程序到内存的某个指定位置,并执行它。这个外来程序就是衔接主机自身活动与执行外来活动的一个桥梁。从此以后,这个外来程序可以继续进一步做更多的工作,比如,读入更多的外来程序,并执行它们。从那个固定大小的外来程序块被读入并被执行开始,OS的Booting部分开始了。

 

OS的Booting部分需要做的工作包括:将OS读入到内存的某个位置,获取各种OS需要的数据,为OS的运行搭建环境。最终Booting跳转到OS的起始指令,并开始执行,这时候,Booting部分结束,OS开始了真正的运行阶段。

 

本章的后续部分将详细讲解IBM PC的Booting过程,以及在其上开发OS的Booting时需要了解的知识。


 

Table of Contents

1.1 Static Memory Layout

1.2 After Power-On

1.3 BIOS Interrupt 

1.4 A20 Gate

1.5 Loading Processing

1.6 Memory Capacity Detection

1.7 Welcome to Protected Mode