跳转至

第1章 操作系统基础

这一章建立后续所有内容共同使用的语言:操作系统提供哪些抽象,内核如何组织,机器如何从上电走到第一个用户进程,以及执行流如何安全地从用户态进入内核。

为什么先学边界与入口

进程、虚拟内存和文件系统看似是不同主题,但它们都依赖同一个边界:普通应用不能任意执行特权指令或访问内核数据,只能通过受控入口请求服务。时钟、缺页和设备完成也会让 CPU 暂停当前控制流,进入内核处理。

如果没有这层共同模型,系统调用容易被误解成普通函数调用,中断容易和异常混为一谈,调度也会像是一个凭空发生的动作。

本章主线

硬件上电
  -> 固件与引导程序
  -> 内核初始化
  -> 第一个用户空间进程
  -> 应用在用户态运行
  -> 系统调用 / 异常 / 中断进入内核
  -> 处理后返回或切换到其他执行流

小结目录

学完应能回答

  • 内核为什么不能只是一组普通链接库?
  • 单体内核和微内核分别把什么放在可信边界内,代价是什么?
  • 系统调用、硬件中断、同步异常的触发来源和返回位置有何不同?
  • 从按下电源到用户登录界面,中间至少经过哪些阶段?
  • “切换到内核态”为什么不必然等于“切换进程”?

与后续章节的连接

时钟中断为抢占式调度提供入口;缺页异常为按需分页提供入口;设备中断为异步 I/O 提供完成通知;系统调用则是文件、进程、网络和内存服务的统一入口。后续章节会不断复用本章的控制流框架。