Skip to content

《深入理解计算机系统第3版》阅读笔记

深入理解计算机系统的英文全称是 Computer Systems: A Programmer's Perspective,作者是 Randal E. Bryant 和 David R. O'Hallaron。该书被广泛认为是计算机系统领域的经典教材之一,旨在帮助读者深入理解计算机系统的工作原理。

这本书简称 CSAPP,是 Computer Systems: A Programmer's Perspective 的首字母缩写。

第1章 计算机系统漫游

介绍计算机系统的基本概念,包括 "Hello, World!" 程序的来历、程序从编写到运行的整个过程、什么是ASCII码、C语言的起源、GNU项目的起源等等。

1.2节介绍了编译的四个过程:预处理,编译,汇编,链接。

接着介绍了计算机的硬件组成,其中CPU是关键,CPU的程序计数器PC(Program Counter)用于指示当前正在执行的指令地址。(其实PC和指令寄存器IP是同一个东西,是不同语境下的不同叫法)

寄存器中的数据会加载到算术/逻辑单元ALU(Arithmetic Logic Unit)中进行计算。

1.5节介绍了多级高速缓存L1、L2、L3的概念。

1.6节介绍了存储器的层次结构的概念,主要思想是上一层的存储器作为下一级存储器的高速缓存。即,主存是磁盘的高速缓存,磁盘又是远程存储的高速缓存。

1.7节介绍了操作系统管理硬件的两个作用:(1)防止硬件被应用程序滥用,(2)对应用程序提供统一的抽象,屏蔽底层硬件细节。

然后介绍了三种操作系统接口规范,Unix、Posix 和标准Unix规范。

又介绍了进程、线程和虚拟内存的概念,以及程序的虚拟内存布局(内核虚拟内存、栈、堆、数据、代码)。

“文件”是对系统各种I/O设备的统一抽象。