CS:APP3e 是 Computer Systems: A Programmer’s Perspective的缩写,是卡内基梅隆大学(简称 CMU) 的ICS,也就是计算机导论课程的教材 ,已被全世界范围内的200多所大学用作教材,两位教授分别是 Randal E. Bryant 和 David R. O’Hallaron,该书的简体中文版名称是《深入理解计算机系統》,豆瓣的评分高达9.8分,其实直译为《从程序员的角度来理解计算机系统》也许更加贴切,因为该书虽然涉及的范围很广但是讲解的内容其实并不算特别深入。
作为本书的有益补充,推荐几本可以继续深入学习的书籍:
- 体系结构宗师 David Patterson写的《计算机组织与设计:硬件/软件接口》和《计算机体系架构:量化研究方法》,前一本书俗称算盘书,目前的第5版是RISC-V版本的,推荐原因:补充本书的第4章:处理器体系结构。
- 已故知名技术作家Richard Stevens写的《UNIX环境高级编程》,简称APUE,学习UNIX/LINUX系统编程的不二之选,推荐原因:补充本书的第8,10,11,12章内容。
- Redhat公司的Ulrich Drepper写的文章《What Every Programmer Should Know About Memory》,全面系统地介绍了程序如何使用内存以及应该怎么做内存优化, 推荐原因:补充本书的第6章:存储器层次结构。
- 俞甲子和石凡一起写的《程序员的自我修养:链接、装载与库》,介绍系统软件的运行机制和原理,讲解应用程序在编译、链接和运行时刻所发生的各种事项,推荐原因:补充本书的第7章:链接。
以上是我读过的偏向系统软件和计算机底层知识的非常不错的书籍和资料,欢迎大家推荐和补充!
今天我们已经被太多的抽象或者所谓的框架所包围,但是底层的工作机制依然是支撑它们的基础,最好还是能够 “知其所以然”,主动修炼内功,**的侯捷先生也说过类似的话 “勿以浮沙筑高台”,理解计算机系统底层的工作原理可以帮助我们更加正确,高效,安全地使用底层的资源,写出更加健壮的代码,以及比别人更加会调试代码!
-
计算机体系结构课程 - 卡内基梅隆大学 (18-447)
-
并行计算架构与编程 - 卡内基梅隆大学 (15-418/618) 卡内基梅隆大学 - 并行计算架构与编程 (15-418 / 15-618)