1、
ROM bios --> 启动盘第一个扇区(此处内容为boot) 加载到 内存位置0x7C00(31KB) --> 执行权转移(也就相当于跳转)
boot程序主要功能:把 软盘/映像文件 中的 head内核代码加载到内存某个指定位置处,并在设置好临时GDT表等信息后,把处理器设置成运行在保护模式下,然后跳转到 head 代码处去运行内核代码。
ROM bios 中断 int 0x13 --> 0x10000[64KB] --> 0x00 --> CR0 --> jmp 0x00
ROM BIOS 中断向量表:0x00,ROM BIOS数据区:内存 1K开始处。
也可以 直接运行 0x10000处的 head代码 而不移动它。
2、
head.s 运行在 32位保护模式下,主要包括:
初始设置的代码(①重新设置GDT表;②设置系统定时器芯片;③重新设置IDT表 并且设置时钟和系统调用中断门;④移动到任务A中执行)、
时钟中断 int 0x08 的过程代码、
系统调用中断 int 0x80 的过程代码、
任务A 和 任务B 等的代码和数据、
虚拟地址空间中 head.s 程序的内核代码和任务代码分配图 如图4-41所示。
3、
章节 ==> 4.9.1多任务程序结构和工作原理
图4-42 的内存分配是 下面是内存低位,上面是内存高位。