zhouhaibing089 / blog

A repository to record some ideas
https://blog.zhouhaibing.com
9 stars 2 forks source link

[译] The little book about OS developement #21

Open zhouhaibing089 opened 7 years ago

zhouhaibing089 commented 7 years ago

original post: https://littleosbook.github.io/

This is working in progress.

目录

  1. 介绍
    1. 关于本书
    2. 关于读者
    3. 致谢
    4. 贡献者
    5. 改动与纠正
    6. 问题与寻求帮助的地方
    7. 许可证
  2. 第一步
    1. 工具
      1. 快速配置
      2. 编程语言
      3. 主机操作系统
      4. 编译系统
      5. 虚拟机
    2. 启动
      1. BIOS
      2. 引导
      3. 操作系统

介绍

如果你想写个你自己的x86操作系统, 此文将会提供一些比较实用的帮助. 在这里, 我们尽量提供一些技术细节方面的帮助, 不过当然, 我们也不希望粘贴太多的例子以及代码片段. 在写此文之前, 我们已经从网上等地方收集了大量十分优秀的资料, 并且关于一些我们遇到的以及长期探索过的问题, 在此文也会有所展现.

这不是一本关于操作系统的理论书籍, 也不是为了讲述操作系统是如何工作的. 如果读者想了解操作系统理论, 我们推荐Andrew Tanenbaum的_Modern Operating Systems, 关于操作系统如何工作, 网上也能找到很多细节方面的介绍.

为了让你更快地进行编码, 我们会在开篇的章节中详述很多细节, 后面的章节则更多地是一些关于所需知识的概述, 随着我们进入越来越多的实现细节和设计, 我们希望读者能对内核开发这个词语更加熟悉. 在一些章节的末尾, 我们还提供了一些链接, 读者可以通过阅读它们来进一步学习并加深理解.

第二和第三章, 我们会搭好环境, 并且在虚拟机中启动我们的操作系统内核, 最终我们会开始用C语言来开始写点代码. 第四章中我们会开始往屏幕以及串口开始写数据, 然后在第五章中深入segmentation, 以及在第六章中探索终端和输入.

至此, 我们已经有了一个基本能正常工作的裸的操作系统内核. 在第七章中, 我们开始学习分页以及虚拟内存(第八章和第九章), 以及内存分配(第十章), 最终运行一个用户态应用程序(第十一章).

我们在最后的三章中讨论了文件系统(第十二章), 系统调用(第十三章)和多任务(第十四章).

关于此书