【读书笔记】CSAPP前八章内容回顾
硬件基础:CPU 与内存(第 1-6 章)
CSAPP在第6章之前,主要结合汇编介绍计算机硬件工作方式,涉及硬件主要包括CPU、内存。这个时候,主要使用汇编/机器码与裸机打交道。
CPU向上提供的一套指令集,叫指令集架构(ISA),规定了CPU上能够运行的指令,ISA与CPU强相关,因此,也可用所支持的ISA来对CPU进行分类,比如:x86, ARM, RISC-V, MIPS...
在汇编层面,除了对CPU的控制外,主要就是对内存的操作,对内存的操作非常简单,只有两种:读(load) 和写(store)。尽管操作简单,但计算机存储系统本身采用分层金字塔架构——从寄存器、高速缓存(L1/L2/L3)到主存、磁盘,每一层都作为下一层的“缓存”,通过局部性原理优化数据访问性能。
系统软件的引入:链接器(第 7 章)
第 7 章标志着从纯硬件视角向系统软件的过渡。链接(Linking) 的过程由编译器套件提供(主要是链接器),负责将多个目标文件组合成可执行程序,解析符号并重定位地址。链接器的存在使得模块化编程和代码复用成为可能,但其功能实现依然可以在无操作系统的裸机环境下完成。
操作系统的必要性(第 8 章起)
从第 8 章开始,操作系统的概念正式登场。需要明确的是:汇编、CPU、内存在裸机环境下即可独立工作——CPU 从上电开始便持续执行取指、译码、执行、访存、写回的流水线循环(实际超标量乱序执行可能更复杂),直至断电或遇到 halt 指令。在这个层面,CPU 对自己执行的指令内容一无所知,更无法感知进程切换或内存管理等高层抽象。
然而,现代计算机系统的核心功能——进程管理、虚拟内存、程序装载——必须由操作系统与硬件协同实现。这种协同在底层硬件视角中是不可见的,只有在高层软件抽象中才能被观察和理解,但这些高层活动又必须依赖底层提供的服务(中断,特权,页表etc)。
异常:连接硬件与操作系统的桥梁(第 8 章)
第 8 章引入的异常(Exception) 是理解操作系统内核的关键切入点。异常机制包括中断(Interrupt)、陷阱(Trap)、故障(Fault)和终止(Abort),它们是硬件向操作系统传递控制权的底层通道。注意,这里的异常是操作系统的机制,是和硬件密切相关的底层概念,与编程中常提到的异常区别很大。
在当前学习阶段,操作系统内核仍是一个功能性黑盒——我们能够观察到进程、信号、虚拟内存等高层行为,但其实现细节尚未展开。要深入理解这些高级概念,必须先掌握操作系统依赖硬件提供的底层机制:
- 异常控制流:CPU 如何响应中断并切换到内核态
- 特权级切换:用户态与内核态的隔离与转换
- 系统调用接口:应用程序请求内核服务的标准化通道
这些"低级"机制是操作系统实现进程控制、内存管理、I/O 管理等"高级"功能的基础。要学习理解进程,信号,虚拟内存,I/O等“高级”层面概念和功能,就要先学习操作系统(配合硬件)提供的"低级"层面的机制和服务。

浙公网安备 33010602011771号