操作系统

Book Notes · Zhenxiang · From Scratch

操作系统真象还原
从零手写视角

阅读地图把它放在延伸:引导、保护模式、中断、内存分页走一遍,把机制敲进一台能启动的教学机。它不是通用 OS,理论对错仍以全书与 408 为准。

01引导

在本书采用的传统 x86 BIOS 路径中,固件把第一扇区读进固定地址,CPU 从实模式起步。加载器再把内核搬到内存并跳转。UEFI 或其他体系不同。这是「操作系统从哪里开始跑」,不是 408 的调度算法。

固件→引导扇区→加载器→内核入口

书中的扇区布局、汇编标签随教学内核而定。记住阶段,不要默某一版魔数当统考答案。

02保护模式

打开保护模式后,段描述符决定基址、界限与特权级。用户态 / 内核态在硬件上就是不同的特权级;系统调用是受控的陷入,不是「再调用一个函数」。

易错:段式与页式可以同时存在。408 的「分段、分页、段页式」是三种管理模型;教学内核先亮段、再亮页,不推翻教材分类。

03中断

中断描述符表指出处理程序入口。外设中断、故障、陷入都从这里分派。本书教学内核将这些处理入口设在内核态(ring 0);处理特权级由 IDT 门的目标段/特权配置决定,不是 IDT 本身保证。中断/陷入通常返回下一条,故障修复后可能重执行当前指令。

这与 CSAPP 四类异常、全书「中断与异常」一致。系统调用是 trap,不是第五类。

04内存分页

页表把虚页号翻成页框号。P=1 才能拼物理地址;P=0 只是状态,访问合法页才缺页。有空闲框直接装入,无空闲才置换。

书中会手写页目录、打开分页位。做完仍要回到全书:连续分配有碎片,请求调页才引入缺页与置换。

VPN→页表→PFN + 页内偏移

章末自测

不能。它是课设用的最小可启动系统。VFS、调度器演化、容器都不在这本书的目标里。
不是。P=0 只是未驻留。非法地址走保护异常。全书口径不变。
先全书与演示钉口径,课设再按引导 → 保护模式 → 中断 → 分页动手。机制冲突以全书为准。