资源大小: 37.61MB
发布时间: 2013-01-23
文件格式: pdf
下载次数: 3
分享到:

下载地址:

下载地址1
(本站为飞网专业下载站,域名:down.cfei.net)

资源简介:

中文名: 自己动手写操作系统作者: 于渊资源格式: PDF版本: 无水印影印版出版社: 电子工业出版社书号: ISBN 7-121-01577-3发行时间: 2005年8月地区: 大陆语言: 简体中文简介: 内容简介:本书在详细分析操作系统原理的基础上,用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。全书共分7章。本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校操作系统课程的实践参考书。 目录: 第1章 马上动手写一个最小的“操作系统”11.1 准备工作11.2 10分钟完成的操作系统11.3 Boot Sector31.4 代码解释31.5 水面下的冰山51.6 回顾6第2章 搭建你的工作环境72.1 虚拟计算机(Virtual PC)72.1.1 Virtual PC初体验82.1.2 创建你的第一个Virtual PC92.1.3 虚拟软盘研究122.1.4 虚拟软盘实战142.2 编译器(NASM & GCC)182.3 安装虚拟Linux192.4 在虚拟Linux上访问Windows文件夹262.5 安装虚拟PCDOS262.6 其他要素292.7 Bochs292.7.1 Bochs vs. Virtual PC vs. VMware302.7.2 Bochs的使用方法312.7.3 用Bochs进行调试332.7.4 在Linux上开发342.8 总结与回顾36第3章 保护模式(Protect Mode)373.1 认识保护模式373.1.1 GDT(Global Descriptor Table) 423.1.2 实模式到保护模式,不一般的jmp453.1.3 描述符属性473.2 保护模式进阶503.2.1 海阔凭鱼跃503.2.2 LDT(Local Descriptor Table)583.2.3 特权级623.3 页式存储823.3.1 分页机制概述833.3.2 编写代码启动分页机制843.3.3 PDE和PTE853.3.4 cr3883.3.5 回头看代码883.3.6 克勤克俭用内存903.3.7 进一步体会分页机制1003.4 中断和异常1073.4.1 中断和异常机制1093.4.2 外部中断1113.4.3 编程操作8259A1133.4.4 建立IDT1163.4.5 实现一个中断1173.4.6 时钟中断试验1193.4.7 几点额外说明1213.5 保护模式下的I/O1223.5.1 IOPL1223.5.2 I/O许可位图(I/O Permission Bitmap)1233.6 保护模式小结123第4章 让操作系统走进保护模式1254.1 突破512字节的限制1254.1.1 FAT121264.1.2 DOS可以识别的引导盘1314.1.3 一个最简单的Loader1324.1.4 加载Loader入内存1334.1.5 向Loader交出控制权1424.1.6 整理boot.asm1424.2 保护模式下的“操作系统”144第5章 内核雏形1465.1 用NASM在Linux下写Hello World1465.2 再进一步,汇编和C同步使用1485.3 ELF(Executable and Linkable Format)1505.4 从Loader到内核1555.4.1 用Loader加载ELF1555.4.2 跳入保护模式1615.4.3 重新放置内核1705.4.4 向内核交出控制权1755.4.5 操作系统的调试方法1765.5 扩充内核1845.5.1 切换堆栈和GDT1845.5.2 整理我们的文件夹1915.5.3 Makefile1915.5.4 添加中断处理2005.5.5 两点说明2185.6 小结219第6章 进程2216.1 迟到的进程2216.2 概述2226.2.1 进程介绍2226.2.2 未雨绸缪——形成进程的必要考虑2226.2.3 参考的代码2246.3 最简单的进程2246.3.1 简单进程的关键技术预测2256.3.2 第一步——ring0→ring12276.3.3 第二步——丰富中断处理程序2436.3.4 进程体设计技巧2546.4 多进程2566.4.1 添加一个进程体2566.4.2 相关的变量和宏2576.4.3 进程表初始化代码扩充2586.4.4 LDT2606.4.5 修改中断处理程序2616.4.6 添加一个任务的步骤总结2636.4.7 号外:Minix的中断处理2656.4.8 代码回顾与整理2696.5 系统调用2806.5.1 实现一个简单的系统调用2806.5.2 get_ticks的应用2866.6 进程调度2926.6.1 避免对称——进程的节奏感2926.6.2 优先级调度总结300第7章 输入/输出系统3027.1 键盘3027.1.1 从中断开始——键盘初体验3027.1.2 AT、PS/2键盘3047.1.3 键盘敲击的过程3047.1.4 解析扫描码3097.2 显示器3257.2.1 初识TTY3257.2.2 基本概念3267.2.3 寄存器3287.3 TTY任务3327.3.1 TTY任务框架的搭建3347.3.2 多控制台3407.3.3 完善键盘处理3467.3.4 TTY任务总结3547.4 区分任务和用户进程3547.5 printf3577.5.1 为进程指定TTY3577.5.2 printf()的实现3587.5.3 系统调用write()3617.5.4 使用printf()363后记366参考文献369附录书中的章节和代码对照表370


飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。