本部分为「Datawhale 开源 408 计划」首篇,旨在通过计算机科学领域经典丛书:《深入理解计算机系统》(Computer Systems: A Programmer's Perspective,CSAPP)帮助更多的小伙伴理解计算机真实的运行过程与逻辑。Datawhale开源社区将全程支持并提供CSAPP原书习题、lab伴读、课件制作等内容。
本部分为《深入理解计算机系统》原书第一部分内容(前六章)。我们鼓励小伙伴们使用「费曼学习法」:”纸上得来终觉浅,绝知此事要躬行。“课件中提供了相应的ppt教材,您可以尝试给自己讲述相关内容以强化理解;也可以录制自己讲述知识点过程中的视频,作为组队学习的打卡内容。
针对不同基础的同学,我们设置了不同梯度的内容:
- 对于只想了解「计算机组成原理」、「计算机系统」与「计算机底层」的同学来说,只需学习CSAPP原课件与参考视频即可。
- 对于学有余力的同学,可以根据我们的参考习题与lab进行分析和实现。
- 对于想要「应用与进阶」的同学,我们提供了高性能计算(知乎专栏-高性能计算翻译计划),可根据配套内容进行探索和打卡。
值得注意的是,「Datawhale 开源 408 计划」旨在为各位同学提供理解计算机相关内容的不同角度,对于需要考研的小伙伴们,本部分仅供参考,具体内容请以教材为主。
- 操作系统的作用、虚拟内存和计算机体系内部的通信
- 高性能计算领域的定理、并发和并行的概念及模型
- 计算机中信息存储和表示的模型以及运算
- 整数的表示与编码、计算机中对整数运算的实现
- 计算机中浮点数的表示及运算实现
- 程序的汇编及机器码中字段、寄存器相关的内容、数据的传送
- 计算机中算术及逻辑操作的实现、指令的控制流、数组的分配和访问
- 结构体等异质数据结构及其实现、缓冲区溢出
- 指令集体系结构、指令编码
- 指令执行的各阶段
- 数据局部性与循环展开
- 高速缓存的作用、高性能计算中隐式利用缓存编程
1.汇编指令集
- 汇编语言网站:http://c.biancheng.net/view/3468.html
- linux汇编语言开发指南:https://zhuanlan.zhihu.com/p/54853591
- 汇编入门手册:https://www.cnblogs.com/dgwblog/p/11784614.html
2.Makefile
3.CSAPP lab
- https://github.com/Exely/CSAPP-Labs
- http://csapp.cs.cmu.edu/3e/labs.html
- CSAPP.zip
- https://hansimov.gitbook.io/csapp/labs/labs-overview
4.CSAPP 课后习题
- CSAPP 答案:https://github.com/DreamAndDead/CSAPP-3e-Solutions
- https://github.com/mofaph/csapp/blob/master/exercise/00-topic.txt
5.参考视频
- Bilibili CSAPP-深入理解计算机系统:https://www.bilibili.com/video/BV1cD4y1D7uR?p=1
贡献者 | 贡献内容 |
---|---|
李岳昆 知乎,Github | 提供全书第一部分1-3章内容pdf、高性能计算教材翻译 |
易远哲 Github | 提供全书第一部分4-6章内容pdf |
叶前坤 Github | 参考习题与lab |
chuxiaoyu 博客 | 开源贡献,「Datawhale 开源 408 计划」统筹工作 |
特别鸣谢:蒋志政 Github 提供了高性能计算教材部分翻译内容