|
RT
有兴趣的可以看下。。
正在学操作系统原理的更要看下。。。
http://share.solrex.cn/WriteOS/
目录:
写在前面的话i
序言vii
第一章计算机启动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 用Makeˉle 编译连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
2.3 让启动扇区加载引导文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.1 一个最简单的loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.2 读取软盘扇区的BIOS 13h 号中断. . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3 搜索loader.bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.4 加载loader 入内存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.5 向loader 转交控制权. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.6 生成镜像并测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 本章全部源代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 |
|