目录
写在前面的话 i
序言 ix
第一章 计算机启动 1
1.1 计算机启动过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 磁盘抽象物理结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 硬盘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 软盘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 启动扇区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 使用虚拟机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 VirtualBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Bochs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 使用软盘镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1 制作软盘镜像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.2 用软盘镜像启动虚拟机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
第二章 最小的“操作系统” 19
2.1 Hello OS world! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Intel 汇编转化为 AT&T(GAS) 汇编 . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2 用连接脚本控制地址空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3 用 Makefile 编译连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4 用虚拟机加载执行 boot.img . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 FAT 文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 FAT12 文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 启动扇区与 BPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 FAT12 数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 FAT12 根目录结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
iii
评论1