BIOS 加载操作系统 bootsec 代码
目录
教学视频
VEDIO: BIOS 加载操作系统 启动扇区 bootsec 代码
1. 加载系统代码整体步骤
2. 加载bootsec代码
直达底部
教学视频
1. 加载系统代码整体步骤
BIOS 将分三批逐次加载操作系统的内核代码。
- 第一批 由 BIOS 中断 int 0x19 把第一扇区 bootsect 的内容加载到内存;
- 第二批、 第三批在 bootsect 的指挥下, 分别把其后的 4 个扇区和随后的 240 个扇区的 内容加载至内存。
2. 加载bootsec代码
经过执行一系列 BIOS 代码之后,计算机完成了自检等操作, 计算机硬件会让 CPU 接收到一个 int 0x19 中断。 CPU 接收到这个中断后, 会立即在中断向量表中找到 int 0x19 中断向量。
int 0x19 相对应的中断服务程序的作用 就是把软盘/硬盘 第一扇区中的程序(512 B)加载到内存 中的指定位置。 该中断服务程序功能是 BIOS 事先设计好的, 代码是固定的, 就是“找到软盘/硬盘”并“加载第一扇区”, 其余的什么都不知道。
int 0x19 中断向量所指向的中断服务程序, 即启动加载服务程序, 将软驱/硬盘 0 号磁头对应盘 面的 0 磁道 1 扇区的内容复制至内存 0x07C00
这个扇区里的内容就是引导程序,也就是 bootsect, 其作用就是陆续把软盘/硬盘中的操作系统程序载入内存。 这样制作的第一扇区就称为启动扇区( bootsector) 。 从此计算机开始和软盘/硬盘上的操作系统程序产生关联。 第一扇区中的程序由 bootsect. s 中的汇编程序汇编而成。
至此, 已经把第一批代码 bootsect 从软盘/硬盘载入计算机的内存了。下面的工作就是执行 bootsect 把软盘/硬盘的第二批、 第三批代码载入内存。
对操作系统而言,“ 约定” 操作系统必须把最开始执行的 程序“ 定位” 在启动扇区( 0 盘 面 0 磁道 1 扇区), 其余的程序可以依照操作系统的设计顺序加载在后续的扇区中。 对 BIOS 而言,“ 约定” 接到 启动 操作系统的命令,“ 定位 识别” 只从启动扇区把代码加载到 0x07C00( BOOTSEG)