写这个教程的原因
在学习设计操作系统的整个过程中,往往面临很多困难。其中就包括对硬件方面的理解,操作系统支持原理的理解、编程语言的熟练度等各方面的问题。而在所有的这些问题中,最基础的往往是对CPU工作模式方面、各种硬件工作原理的理解。
即便不需要设计操作系统,但是有时候也需要看一些操作系统的内核源码。为了读懂这些源码,你也需要具备相关的硬件知识。写到这里,我突然想起了自己十多年前在大学图书馆借到一本Linux 0.11源码分析的书籍。当时花了很多时间看,但是看不明白。最大的问题就在于我对于相关硬件知识的欠缺。
此外,一些同学在学习我的《从0学写x86 Linux操作系统》课时,对x86的保护模式以及相关的芯片细节普遍感到不好理解。加之这些知识点往往与操作系统设计相关的知识交织在一起,整个学习过程变得更加困难。
因此,我设计了这门课程,试图通过非常精练的代码展现x86保护模式下的编程方法,进而方便同学将注意集中到硬件知识本身。在这有了这些基础之后,在学习后面的章节时,会更加轻松。
如果你不需要学习我的课程,而只是自己摸索着设计一个操作系统;这门课程也将有助于你扫清x86硬件知识学习上的障碍。
主要内容
这门课程虽然代码量不多,但是将涉及多方面的硬件知识。
- 计算机上电启动后的工作流程
- BIOS中断服务程序的使用
- 如何进入保护模式:GDT表等
- 保护模式下系统调用的实现
- x86中断系统的配置和定时器的配置
- 保护模式下进程切换的原理
- 虚拟存储和分页机制
以上内容涉及到设计操作系统时所需要的各个方面的硬件知识。看似内容比较多,但实际的代码量比较小,只有大概200行的样子。代码精炼有助于我们将关注点放到硬件细节的本身上。
上面的文档配套了相关的源码和视频,视频已经发布到了CSDN上。感兴趣的朋友可以关注:用不到200行代码设计x86保护模式下的操作系统--操作系统视频教程-计算机基础-CSDN程序员研修院