当PC加电后,处理器的寄存器被设为某些特定值。在这些寄存器中,
指令指针寄存器被设为32位值0xfffffff0。
指令指针寄存器指向处理器将要执行的指令代码。cr1
,
一个32位控制寄存器,在刚启动时值被设为0。cr1的PE(Protected Enabled,
保护模式使能)位用来指示处理器是处于保护模式还是实地址模式。
由于启动时该位被清位,处理器在实地址模式中引导。在实地址模式中,
线性地址与物理地址是等同的。
值0xfffffff0略小于4G,因此计算机没有4G字节物理内存, 这就不会是一个有效的内存地址。计算机硬件将这个地址转指向BIOS存储块。
BIOS表示Basic Input Output System (基本输入输出系统)。在主板上,它被固化在一个相对容量较小的 只读存储器(Read-Only Memory, ROM)。BIOS包含各种各样为主板硬件 定制的底层例程。就这样,处理器首先指向常驻BIOS存储器的地址 0xfffffff0。通常这个位置包含一条跳转指令,指向BIOS的POST例程。
POST表示Power On Self Test(加电自检)。 这套程序包括内存检查,系统总线检查和其它底层工具, 从而使得CPU能够初始化整台计算机。这一阶段中有一个重要步骤, 就是确定引导设备。现在所有的BIOS都允许手工选择引导设备。 你可以从软盘、光盘驱动器、硬盘等设备引导。
POST的最后一步是执行INT 0x19
指令。
这个指令从引导设备第一个扇区读取512字节,装入地址0x7c00。
第一个扇区的说法最早起源于硬盘的结构,
硬盘面被分为若干圆柱形轨道。给轨道编号,同时又将轨道分为
一定数目(通常是64)的扇形。0号轨道是硬盘的最外圈,1号扇区,
第一个扇区(轨道、柱面都从0开始编号,而扇区从1开始编号)
有着特殊的作用,它又被称为主引导记录(Master Boot Record, MBR)。
第一轨剩余的扇区常常不使用[1]。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.