*/-->
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
pre.src {background-color: Black; color: White;}
BIOS 的作用
实模式 :20 位,1M 的存储器可以直接访问 BIOS 以及硬件,没有分页和多任务,一开机就是实模式
BIOS :由硬件自己启动,他位于 0xFFFF0,硬件一加电就会自动执行他 CS:0xF000,IP:FFF0 –> 0xFFFF0
保护模式 :我们平常使用的模式。在实模式中 IP 为 16 位,在保护模式下,IP 变为 32 位,叫 EIP
BIOS 启动的作用,检测硬件, 更重要的是 在内存中建立 中断向量表 和 中断服务程序
1K:0x0 ~ 0x3FF
256B:0x0 ~ 0xFF
中断向量表 在内存中:
0x00000 ~ 0x003FF:中断向量表
0x00400 ~ 0x004FF:BIOS 数据区
0x0E05B ~ 0x0FFFF:与中断向量表相关的若干中断服务程序
中断向量表 有 1K,其他包含 256 个中断向量,每个中断向量表就占 4K,其中包含 CS 和 IP 的值
每个中断向量都指向一个具体的中断服务程序
计算机分 3 次 加载 操作系统 内核
- 由 BIOS 中断 int 0x19 把第一扇区 bootsect 的内容加载到内存
- 2 和 3 在 bootsect 的指挥下,分别把其后的 4 个的扇区和随后的 240 个扇区的内容加载到内存
其他 BIOS 中断 0x19 是由计算机的 BIOS 启动的。中断向量 0x19 将 CPU 指向 0x0E6F2 (在 0x0E05B ~ 0x0FFFF 存在有 与中断向量表相关的若干中断服务程序,其中 0x19 对应的中断服务程序就在这里 0xE6F2) 。他的作用是:
把软盘第一扇区的程序 (512B) 加载到内存中的指定位置
中断向量表 interrupt verctor table:是实模式中断机制的重要组成部分,记录所有中断对应的中断服务程序的内存地址
中断服务 interrupt service:具有特定功能的程序
int 0x19 执行完之后,就会将第一扇区的内容复制到内存 0x07C00 处
这个扇区里面的内容就是 linux 的引导程序,也就是 bootsect 启动扇区,然后 bootsect 执行软盘中的第二批,第三批代码载入内存中