mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-03-20 03:55:41 +08:00
40 lines
2.8 KiB
Markdown
40 lines
2.8 KiB
Markdown
# 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)
|