前 言

“好想编写一个操作系统呀!”笔者的朋友曾说这是所有程序员都曾经怀揣的一个梦想。说“所有的程序员”可能有点夸张了,不过作为程序员的梦想,它至少也应该能排进前十名吧。

也许很多人觉得编写操作系统是个天方夜谭,这一定是操作系统业界的一个阴谋(笑)。他们故意让大家相信编写操作系统是一件非常困难的事情,这样就可以高价兜售自己开发的操作系统,而且操作系统的作者还会被顶礼膜拜。那么实际情况又怎么样呢?和别的程序相比,其实编写操作系统并没有那么难,至少笔者的感觉是这样。

在各位读者之中,也许有人曾经挑战过操作系统的编写,但因为太难而放弃了。拥有这样经历的人也许不会认同笔者的观点。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事而已。

不仅是编写操作系统,任何事都是一样的。如果讲解的人认为它很难,那就不可能把它讲述得通俗易懂,即便是同样的内容,也会讲得无比复杂。这样的讲解,肯定是很难懂的。

那么,你想不想和笔者一起再挑战一次呢?如果你曾经梦想过编写自己的操作系统,一定会觉得乐在其中的。

可能有人会说,这本书足足有700多页,怎么会“有趣”和“简单”呢?唔,这么一说笔者也觉得挺心虚的,不过其实也只是长了那么一点点啦。平均下来的话,每天只有大约23页的内容,你看,也没有那么长吧?

这本书的文风非常轻松,也许你不知不觉中就会读得很快。但是这样的话可能印象不会很深,最好还是能静下心来慢慢地读。书中所展示的程序代码和文字的说明同样重要,因此也希望大家仔细阅读。只要注意这些,理解本书的内容就应该没有问题了。

在本书中,我们使用C语言和汇编语言来编写操作系统,不过不必担心,你可以在阅读本书的同时来逐步学习关于这些编程语言的知识。本书在这方面写得非常仔细,如果能有人通过本书终于把C语言中的指针给搞懂了,那笔者的目的也就达到了。即便是从这样的水平开始,30天后你也能够编写出一个很棒的操作系统,请大家拭目以待吧!

目录

  • 版 权 声 明
  • 译 者 序
  • 前 言
  • 第0天 着手开发之前
  • 第1天 从计算机结构到汇编程序入门
  • 第2天 汇编语言学习与Makefile入门
  • 第3天 进入32位模式并导入C语言
  • 第4天 C语言与画面显示的练习
  • 第5天 结构体、文字显示与GDT/IDT初始化
  • 第6天 分割编译与中断处理
  • 第7天 FIFO与鼠标控制
  • 第8天 鼠标控制与32位模式切换
  • 第9天 内存管理
  • 第10天 叠加处理
  • 第11天 制作窗口
  • 第12天 定时器(1)
  • 第13天 定时器(2)
  • 第14天 高分辨率及键盘输入
  • 第15天 多任务(1)
  • 第16天 多任务(2)
  • 第17天 命令行窗口
  • 第18天 dir命令
  • 第19天 应用程序
  • 第20天 API
  • 第21天 保护操作系统
  • 第22天 用C语言编写应用程序
  • 第23天 图形处理相关
  • 第24天 窗口操作
  • 第25天 增加命令行窗口
  • 第26天 为窗口移动提速
  • 第27天 LDT与库
  • 第28天 文件操作与文字显示
  • 第29天 压缩与简单的应用程序
  • 第30天 高级的应用程序
  • 第31天 写在开发完成之后