OS —操作系统启动,从实模式到保护模式的流程

完成一个OS,当然要从OS启动开始,描述一下从实模式到保护模式,OS需要完成的事情,总的流程是:
BIOS -> MBR -> loader ->保护模式

实模式下内存布局:

OS —操作系统启动,从实模式到保护模式的流程

BIOS加载主引导记录MBR

实模式下,计算机可用的有0-19共20条地址线,访存大小1MB。
开机时,CS:IP为0xF000:0xFFF0,指向BIOS的入口地址,0xFFFF0处的代码(待补充)
MBR位于硬盘的0扇区,BIOS读取MBR,将MBR加载到内存0x7c00处

MBR加载loader

MBR的任务是加载loader,loader位置磁盘0扇道,1扇区

loader修改配置,进入保护模式

为进入保护模式,loader需要完成以下三项内容:
(1)创建全局描述符表,加载选择子
(2)将端口092第1位置1,打开A20地址线
(3)将CR0寄存器PE位(0位)置1

磁盘的表示

磁盘的读取以扇区为单位,每个扇区512字节,有两种表示方法,CHS和LBA,两者的最大不同在于扇区的表示。
CHS:柱面 - 磁头 - 扇区表示法;
每个盘片有上下两个盘面,每个盘面都有一个磁头负责读写数据,
每个盘面上的扇区数目固定,距离圆心相同距离的扇区组成的圆弧
称为磁道。所有盘片上距离圆心相同距离的磁道,共同组成了柱
面。因此寻址一个扇区可以先指定柱面,再指定磁头来确定上下盘
面,然后确定是磁道内的某个扇区。
LBA:逻辑块地址,扇区从0开始编址,递增直至表示完所有盘片上的扇
区,相较于CHS,LBA表示法更加符合逻辑。
可以在磁盘端口进行设置,选择使用哪种寻址方式。