Files
cs-self-learning/docs/计算机系统基础/CSAPP.md
Yinmin Zhong 2f81e8ceaa [COURSE] Add CS110 System Principles course (#595)
* reorganize intro to system courses

* nits
2024-04-14 15:18:18 +08:00

40 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CMU CS15213: CSAPP
## 课程简介
- 所属大学CMU
- 先修要求CS61A, CS61B
- 编程语言C
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150 小时
CMU 大名鼎鼎的镇系神课以其内容庞杂Project 巨难而闻名遐迩。课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,作为系统入门课,兼具深度和广度,如果自学确实需要相当的毅力和代码功底。
这门课配合的教材由 CMU 计算机系主任 Bryant 教授执笔,也即所谓的 CSAPP。这也是我第一本认认真真一页一页读过去的计算机教材虽然很难啃但着实收获良多。
北大购买了这门课的版权并开设了 Introduction to Computer System 这门课,但其实 CSAPP 所有的课程资源和实验代码都能在它的官方主页上访问到(具体参见下方链接)。
这门课由于过于出名,全世界的码农争相学习,导致其 Project 的答案在网上几乎唾手可得。但如果你真的想锻炼自己的代码能力,希望你不要借鉴任何第三方代码。
认真学完这一门课,你对计算机系统的理解绝对会上升一个台阶。
## 课程资源
- 课程网站:<http://csapp.cs.cmu.edu/>
- 课程视频:<https://www.bilibili.com/video/BV1iW411d7hd>
- 课程教材Computer Systems: A Programmer's Perspective, 3/E
- 课程作业11 个 Project[代码框架全部开源](http://csapp.cs.cmu.edu/3e/labs.html)
英语有困难的同学可以参考B站UP主[九曲阑干](https://space.bilibili.com/354767108/)对 CSAPP 的[中文讲解](https://www.bilibili.com/video/BV1cD4y1D7uR)据说CMU的中国留学生也在CMU的课堂上看这个视频呢。另外如果大家在看完 CSAPP 后对书中的第七章链接有一定的疑问推荐阅读《程序员的自我修养》这本书书的副标题是链接装载与库。这本书能够帮助我们完善对程序链接的理解相信你在看完这本书以后可以对程序的链接ELF 文件,动态库都将有一个更加深入的理解。十分推荐在读完 CSAPP对计算机系统有一定的了解以后作为补充资料来阅读。
有关 Lab 部分,同学们亦可参考 [Arthals](https://arthals.ink/about-me) 在北大计算机系统导论ICS课程中所做的详尽笔记
- [Data Lab](https://arthals.ink/posts/experience/data-lab)
- [Bomb Lab](https://arthals.ink/posts/experience/bomb-lab)
- [Attack Lab](https://arthals.ink/posts/experience/attack-lab)
- [Arch Lab](https://arthals.ink/posts/experience/arch-lab)
- [Cache Lab](https://arthals.ink/posts/experience/cache-lab)
- [Tsh Lab](https://arthals.ink/posts/experience/tsh-lab)
- [Malloc Lab](https://arthals.ink/posts/experience/malloc-lab)
- [Proxy Lab](https://arthals.ink/posts/experience/proxy-lab)