CSAPP深入理解计算机系统
前言·
作用:系统入门
CMU 15-213: CSAPP - CS自学指南 (csdiy.wiki)
直接把csdiy的介绍摘过来
话说这个放到了体系结构分区里,另外难度5颗星+需要编程语言+数据结构的先修要求;之前一直以为是国外的计算机导论课程,广而不深
课程简介·
- 所属大学:CMU
- 先修要求:CS61A(python编程思想), 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,代码框架全部开源
英语有困难的同学可以参考B站UP主九曲阑干对 CSAPP 的中文讲解(据说CMU的中国留学生也在CMU的课堂上看这个视频呢)。另外如果大家在看完 CSAPP 后对书中的第七章链接有一定的疑问,推荐阅读《程序员的自我修养》这本书,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,相信你在看完这本书以后可以对程序的链接,ELF 文件,动态库都将有一个更加深入的理解。十分推荐在读完 CSAPP,对计算机系统有一定的了解以后作为补充资料来阅读。
- Computer Systems: A Programmer’s Perspective
国外原版课程链接:2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频_哔哩哔哩_bilibili
同学当时看的推荐的:深入理解计算机系统合集(周更中)_哔哩哔哩_bilibili
fengmuzi2003(之前看过一些up主的其他视频,感觉很有品味和技术能力):[原创] 深入理解计算机系统 - CSAPP重点导读(更新完毕)_哔哩哔哩_bilibili
csdiy推荐的九曲阑干,更详细:【CSAPP-深入理解计算机系统】1-1.计算机系统漫游_哔哩哔哩_bilibili目录更细,可以某个小点不懂再来看
书籍:自己买的纸质书是第三版
开始学习吧!
第01章:计算机系统漫游 - CSAPP重点解读 (gitbook.io)
九曲的课程讲的不紧不慢蛮好的,听着挺舒服,麻省理工那个有点干涩;另外一个则是只有重点导读
hello world C code:
1 |
|
hello world shell:
1 | 桌面$ vim hello.c |
32bit: 1 word = 4 Byte | 64bit: 1 word = 8 Byte(64位系统1字8字节。PC程序计数器存储空间是1字)
计算机漫游部分没什么吃力,而且还能回顾之前上过的课程(的确是一章一本书了)