Skip to content

第一章 操作系统在做什么:三大抽象


1. 先破一个误区:操作系统不是"一堆名词"

很多人复习操作系统,是从背名词开始的:进程、线程、分页、信号量、死锁、SPOOLing……背了一大堆,做题时还是拿不准。原因很简单:这些名词不是孤立的知识点,而是同一套设计思路在不同资源上的反复应用。

这套思路可以用一句话概括:硬件是有限的、难用的、不安全的,操作系统把它们包装成无限的、好用的、安全的假象。这个"制造假象"的过程,教科书里叫抽象(abstraction,白话就是"把复杂细节藏起来,只露出一个简单的使用界面")。

抓住这条主线之后你会发现,整个专题其实只讲三件事:

  1. 虚拟化:把一块 CPU、一条内存"变出"很多份,让每个程序都以为自己独占机器。
  2. 并发:很多程序"同时"跑起来之后,如何避免互相踩踏。
  3. 持久化:断电之后数据不丢,靠文件系统把易失的内存世界接到磁盘上。

后面六章,全部挂在这三条主线上。本章先把地图画出来。

2. 操作系统的定位:硬件与应用之间的中间层

如果没有操作系统,每个应用程序都要自己直接操作硬件:自己给磁盘发命令、自己管理内存地址、自己处理键盘信号。这意味着每个程序员都要精通所有硬件型号,而且任何一个程序出错都可能毁掉整台机器上的所有数据。

操作系统的定位就是插在中间的一层"总管家":

从这张图能读出操作系统的两重身份,这也是选择题里最常考的表述:

视角身份白话解释
对下(面向硬件)资源的管理者统一登记、分配、回收 CPU 时间、内存空间、设备使用权
对上(面向应用)抽象的提供者把"磁盘扇区"包装成"文件",把"CPU 时间片"包装成"进程"

一句话点透:应用程序看到的从来不是真实硬件,而是操作系统精心伪造的"虚拟机器"。文件、进程、虚拟地址,全是伪造出来的方便概念——但正是这些"假货",让编程从不可能变成了人人可为。

3. 全专题地图:虚拟化、并发、持久化

3.1 虚拟化:把"一个"变成"很多个"

3.2 并发:假象带来的新麻烦

3.3 持久化:对抗断电

4. 内核态与用户态:为什么必须有特权级

4.1 问题:既要让程序直接跑,又不能让它乱来

4.2 系统调用:用户程序请内核办事的唯一正门

5. 中断与陷阱:内核靠什么"夺回控制权"

6. 操作系统的发展脉络:每一代都在解决上一代的浪费

7. 常见操作系统分类对照

8. 常见 OS 家族一览

9. 传统教材的"四大管理"如何对应三大主线

10. 本章要点回顾

11. 做题提醒