0.00-050613_zc

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 的内存分配是 下面是内存低位,上面是内存高位。

 

posted @ 2015-12-29 16:16  CodeSkill  阅读(171)  评论(0编辑  收藏  举报