通过阅读源码来学习操作系统要注意区分共性与平台特性。 1. 中断响应是共性,8259 中断控制器和 IDT 是 x86 的特性。 2. 虚拟内存管理是共性,x86 的 GDT 和 LDT 是特性,而且现在的系统也只是走个过场而已。 3. 任务调度与上下文切换是共性,x86 的 TSS 是特性,而且现在的系统(2.2.0 以后)也不用 TSS 做任务切换了,早期的 Linux 是用了 TSS 的,读老代码的时候要注意。 4. IO 是共性,位于 0xB8000 的显示缓冲区是 x86 的特性。 5. 系统初始化是共性,BIOS 把引导扇区加载到 0x7C00 是 x86 的特性。国内好多书对 PC 的系统引导过程(booting)大书特书,是主次不分、本末倒置,你学的是操作系统,不是 boot loader 。
刚好,我这里有上位机入门,学习线路图,各种项目,需要留个6。