# 深入理解计算机系统（CSAPP）

## 深入理解计算机系统（CSAPP）

- [本电子书信息](https://hansimov.gitbook.io/csapp/readme.md)
- [出版者的话](https://hansimov.gitbook.io/csapp/publish-info/publisher-words.md)
- [中文版序一](https://hansimov.gitbook.io/csapp/publish-info/chinese-preface-1.md)
- [中文版序二](https://hansimov.gitbook.io/csapp/publish-info/chinese-preface-2.md)
- [译者序](https://hansimov.gitbook.io/csapp/publish-info/translators-preface.md)
- [前言](https://hansimov.gitbook.io/csapp/publish-info/preface.md)
- [关于作者](https://hansimov.gitbook.io/csapp/publish-info/about-authors.md)
- [第 1 章：计算机系统漫游](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems.md)
- [1.1 信息就是位 + 上下文](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.1.md)
- [1.2 程序被其他程序翻译成不同的格式](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.2.md)
- [1.3 了解编译系统如何工作是大有益处的](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.3.md)
- [1.4 处理器读并解释储存在内存中的指令](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.4.md)
- [1.5 高速缓存至关重要](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.5.md)
- [1.6 存储设备形成层次结构](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.6.md)
- [1.7 操作系统管理硬件](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.7.md)
- [1.8 系统之间利用网络通信](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.8.md)
- [1.9 重要主题](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.9.md)
- [1.10 小结](https://hansimov.gitbook.io/csapp/ch01-a-tour-of-computer-systems/1.10-xiao-jie.md)
- [第 2 章：信息的表示和处理](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information.md)
- [2.1 信息存储](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/2.1-xin-xi-cun-chu.md)
- [2.2 整数表示](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/2.2-zheng-shu-biao-shi.md)
- [2.3 整数运算](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/2.3-zheng-shu-yun-suan.md)
- [2.4 浮点数](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/2.4-fu-dian-shu.md)
- [2.5 小结](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/2.5-xiao-jie.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part1/ch02-representing-and-manipulating-information/jia-ting-zuo-ye.md)
- [第 3 章：程序的机器级表示](https://hansimov.gitbook.io/csapp/part1/ch03-machine-level-representing-of-programs.md)
- [3.1 历史观点](https://hansimov.gitbook.io/csapp/part1/ch03-machine-level-representing-of-programs/3.1-a-historial-perspective.md)
- [3.2 程序编码](https://hansimov.gitbook.io/csapp/part1/ch03-machine-level-representing-of-programs/3.2-program-encodings.md)
- [3.3 数据格式](https://hansimov.gitbook.io/csapp/part1/ch03-machine-level-representing-of-programs/3.3-data-formats.md)
- [3.4 访问信息](https://hansimov.gitbook.io/csapp/part1/ch03-machine-level-representing-of-programs/3.4-accessing-information.md)
- [第 4 章：处理器体系结构](https://hansimov.gitbook.io/csapp/part1/ch04-processor-architecture.md)
- [第 5 章：优化程序性能](https://hansimov.gitbook.io/csapp/part1/ch05-optimizing-program-performance.md)
- [第 6 章：存储器层次结构](https://hansimov.gitbook.io/csapp/part1/ch06-the-memory-hierarchy.md)
- [第 7 章：链接](https://hansimov.gitbook.io/csapp/part2/ch07-linking.md)
- [7.1 编译器驱动程序](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.1-compiler-drviers.md)
- [7.2 静态链接](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.2-static-linking.md)
- [7.3 目标文件](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.3-object-files.md)
- [7.4 可重定位目标文件](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.4-relocatable-object-files.md)
- [7.5 符号和符号表](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.5-symbols-and-symbol-tables.md)
- [7.6 符号解析](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.6-symbol-resolution.md)
- [7.7 重定位](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.7-relocation.md)
- [7.8 可执行目标文件](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.8-executable-object-files.md)
- [7.9 加载可执行目标文件](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.9-loading-executable-object-files.md)
- [7.10 动态链接共享库](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.10-dynamic-linking-with-shared-libraries.md)
- [7.11 从应用程序中加载和链接共享库](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.11-loading-and-linking-shared-libraries-from-applications.md)
- [7.12 位置无关代码](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.12-position-independent-code.md)
- [7.13 库打桩机制](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.13-library-interpositioning.md)
- [7.14 处理目标文件的工具](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.14-tools-for-manipulating-object-files.md)
- [7.15 小结](https://hansimov.gitbook.io/csapp/part2/ch07-linking/7.15-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part2/ch07-linking/homework.md)
- [第 8 章：异常控制流](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow.md)
- [8.1 异常](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.1-exceptions.md)
- [8.2 进程](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.2-processes.md)
- [8.3 系统调用错误处理](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.3-system-call-error-handling.md)
- [8.4 进程控制](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.4-process-control.md)
- [8.5 信号](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.5-signals.md)
- [8.6 非本地跳转](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.6-nonlocal-jumps.md)
- [8.7 操作进程的工具](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.7-tools-for-manipulating-processes.md)
- [8.8 小结](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/8.8-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part2/ch08-exceptional-control-flow/homework.md)
- [第 9 章：虚拟内存](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory.md)
- [9.1 物理和虚拟寻址](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.1-physical-and-virtual-addressing.md)
- [9.2 地址空间](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.2-address-spaces.md)
- [9.3 虚拟内存作为缓存的工具](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.3-vm-as-a-tool-for-caching.md)
- [9.4 虚拟内存作为内存管理的工具](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.4-vm-as-a-tool-for-memory-management.md)
- [9.5 虚拟内存作为内存保护的工具](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.5-vm-as-a-tool-for-memory-protection.md)
- [9.6 地址翻译](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.6-address-translation.md)
- [9.7 案例研究：Intel Core i7 / Linux 内存系统](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.7-case-study-the-intel-core-i7-linux-memory-system.md)
- [9.8 内存映射](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.8-memory-mapping.md)
- [9.9 动态内存分配](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.9-dynamic-memory-allocation.md)
- [9.10 垃圾收集](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.10-garbage-collection.md)
- [9.11 C 程序中常见的与内存有关的错误](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.11-common-memoory-related-bugs-in-c-programs.md)
- [9.12 小结](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/9.12-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part2/ch09-virtual-memory/homework.md)
- [第 10 章：系统级 I/O](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io.md)
- [10.1 Unix I/O](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.1-unix-io.md)
- [10.2 文件](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.2-files.md)
- [10.3 打开和关闭文件](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.3-opening-and-closing-files.md)
- [10.4 读和写文件](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.4-reading-and-writing-files.md)
- [10.5 用 RIO 包健壮地读写](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.5-robust-reading-and-writing-with-the-rio-package.md)
- [10.6 读取文件元数据](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.6-reading-file-metadata.md)
- [10.7 读取目录内容](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.7-reading-directory-contents.md)
- [10.8 共享文件](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.8-sharing-files.md)
- [10.9 I/O 重定向](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.9-io-redirection.md)
- [10.10 标准 I/O](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.10-standard-io.md)
- [10.11 综合：我该使用哪些 I/O 函数？](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.11-putting-it-together-which-io-functions-should-i-use.md)
- [10.12 小结](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/10.12-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part3/ch10-system-level-io/homework.md)
- [第 11 章：网络编程](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming.md)
- [11.1 客户端—服务器编程模型](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.1-the-client-server-programming-model.md)
- [11.2 网络](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.2-networks.md)
- [11.3 全球 IP 因特网](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.3-the-global-ip-internet.md)
- [11.4 套接字接口](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.4-the-sockets-interface.md)
- [11.5 Web 服务器](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.5-web-servers.md)
- [11.6 综合：TINY Web 服务器](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.6-putting-it-together-the-tiny-web-server.md)
- [11.7 小结](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/11.7-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part3/ch11-network-programming/homework.md)
- [第 12 章：并发编程](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming.md)
- [12.1 基于进程的并发编程](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.1-concurrent-programming-with-processes.md)
- [12.2 基于 I/O 多路复用的并发编程](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.2-concurrent-programming-with-io-multiplexing.md)
- [12.3 基于线程的并发编程](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.3-concurrent-programming-with-threads.md)
- [12.4 多线程程序中的共享变量](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.4-shared-variables-in-threaded-programs.md)
- [12.5 用信号量同步线程](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.5-synchronizing-thread-with-semaphores.md)
- [12.6 使用线程提高并行性](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.6-using-threads-for-parallelism.md)
- [12.7 其他并发问题](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.7-other-concurrency-issues.md)
- [12.8 小结](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/12.8-summary.md)
- [家庭作业](https://hansimov.gitbook.io/csapp/part3/ch12-concurrent-programming/homework.md)
- [附录 A：错误处理](https://hansimov.gitbook.io/csapp/appendix-error-handling.md)
- [参考文献](https://hansimov.gitbook.io/csapp/references.md)
- [实验总览](https://hansimov.gitbook.io/csapp/labs/labs-overview.md)
- [常见问题](https://hansimov.gitbook.io/csapp/labs/labs-overview/common-problems.md)
- [实验 1：Data Lab](https://hansimov.gitbook.io/csapp/labs/data-lab.md)
- [README（讲师版）](https://hansimov.gitbook.io/csapp/labs/data-lab/readme-instructor.md)
- [README（学生版）](https://hansimov.gitbook.io/csapp/labs/data-lab/readme-student.md)
- [Writeup](https://hansimov.gitbook.io/csapp/labs/data-lab/writeup.md)
- [实验 2：Bomb Lab](https://hansimov.gitbook.io/csapp/labs/bomb-lab.md)
- [README（讲师版）](https://hansimov.gitbook.io/csapp/labs/bomb-lab/readme-jiang-shi-ban.md)
- [Writeup](https://hansimov.gitbook.io/csapp/labs/bomb-lab/writeup.md)
- [实验 3：Attack Lab](https://hansimov.gitbook.io/csapp/labs/attack-lab.md)
- [实验 4：Architechture Lab](https://hansimov.gitbook.io/csapp/labs/arch-lab.md)
- [实验 5：Cache Lab](https://hansimov.gitbook.io/csapp/labs/cache-lab.md)
- [实验 6：Performance Lab](https://hansimov.gitbook.io/csapp/labs/perf-lab.md)
- [实验 7：Shell Lab](https://hansimov.gitbook.io/csapp/labs/shell-lab.md)
- [实验 8：Malloc Lab](https://hansimov.gitbook.io/csapp/labs/malloc-lab.md)
- [实验 9：Proxy Lab](https://hansimov.gitbook.io/csapp/labs/proxy-lab.md)
