CMU CS15213: CSAPP
课程简介
- 所属大学:CMU
- 先修要求:CS61A, CS61B
- 编程语言:C
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150小时
CMU大名鼎鼎的镇系神课,以其内容庞杂,project巨难而闻名遐迩。课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,作为系统入门课,兼具深度和广度,如果自学确实需要相当的毅力和代码功底。
这门课配合的教材由CMU计算机系主任Bryant教授执笔,也即所谓的CSAPP。这也是我第一本认认真真一页一页读过去的计算机教材,虽然很难啃,但着实收获良多。
北大购买了这门课的版权并开设了Introduction to Computer System这门课,但其实CSAPP所有的课程资源和实验代码都能在它的官方主页上访问到(具体参见下方链接)。
这门课由于过于出名,全世界的码农争相学习,导致其Project的答案在网上几乎唾手可得。但如果你真的想锻炼自己的代码能力,希望你不要借鉴任何第三方代码。
认真学完这一门课,你对计算机系统的理解绝对会上升一个台阶。
课程资源
补充:相信大家在看完CSAPP这本书以后,可能会对书中的第七章链接有一定的疑问。这里推荐一本书《程序员的自我修养》,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,以及对CSAPP第七章部分知识点的一个详细的阐述。相信你在看完这本书以后可以对程序的链接,ELF文件,动态库有一个更加深入的理解。十分推荐在读完CSAPP,对计算机系统有一定的了解以后作为补充资料来阅读。
CMU CS15213: CSAPP
课程简介
- 所属大学:CMU
- 先修要求:CS61A, CS61B
- 编程语言:C
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150小时
CMU大名鼎鼎的镇系神课,以其内容庞杂,project巨难而闻名遐迩。课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,作为系统入门课,兼具深度和广度,如果自学确实需要相当的毅力和代码功底。
这门课配合的教材由CMU计算机系主任Bryant教授执笔,也即所谓的CSAPP。这也是我第一本认认真真一页一页读过去的计算机教材,虽然很难啃,但着实收获良多。
北大购买了这门课的版权并开设了Introduction to Computer System这门课,但其实CSAPP所有的课程资源和实验代码都能在它的官方主页上访问到(具体参见下方链接)。
这门课由于过于出名,全世界的码农争相学习,导致其Project的答案在网上几乎唾手可得。但如果你真的想锻炼自己的代码能力,希望你不要借鉴任何第三方代码。
认真学完这一门课,你对计算机系统的理解绝对会上升一个台阶。
课程资源
补充:相信大家在看完CSAPP这本书以后,可能会对书中的第七章链接有一定的疑问。这里推荐一本书《程序员的自我修养》,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,以及对CSAPP第七章部分知识点的一个详细的阐述。相信你在看完这本书以后可以对程序的链接,ELF文件,动态库有一个更加深入的理解。十分推荐在读完CSAPP,对计算机系统有一定的了解以后作为补充资料来阅读。
MIT 6.S081: Operating System Engineering
课程简介
- 所属大学:麻省理工学院
- 先修要求:体系结构 + 扎实的C语言功底 + RISC-V汇编语言
- 编程语言:C,RISC-V
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150小时
麻省理工学院大名鼎鼎的PDOS实验室开设的面向MIT本科生的操作系统课程。开设这门课的教授之一 —— Robert Morris教授曾是一位顶尖黑客,世界上第一个蠕虫病毒Morris就是出自他之手。
这门课的前身是MIT著名的课程6.828,MIT的几位教授为了这门课曾专门开发了一个基于X86的教学用操作系统JOS,被众多名校作为自己的操统课程实验。但随着RISC-V的横空出世,这几位教授又基于RISC-V开发了一个新的教学用操作系统xv6,并开设了MIT6.S081这门课。由于RISC-V轻便易学的特点,学生不需要像此前JOS一样纠结于众多X86“特有的”为了兼容而遗留下来的复杂机制,而 可以专注于操作系统层面的开发。
这几位教授还专门写了一本教程,详细讲解了xv6的设计思想和实现细节。
这门课的讲授也很有意思,老师会带着学生依照xv6的源代码去理解操作系统的众多机制和设计细节,而不是停留于理论知识。每周都会有一个lab,让你在xv6上增加一些新的机制和特性,非常注重学生动手能力的培养。整个学期一共有11个lab,让你全方位地深刻理解操作系统的每个部分,非常有成就感。而且所有的lab都有着非常完善的测试框架,有的测试代码甚至上千行,让人不得不佩服MIT的几位教授为了教好这门课所付出的心血。
这门课的后半程会讲授操作系统领域的多篇经典论文,涉及文件系统、系统安全、网络、虚拟化等等多个主题,让你有机会接触到学界 最前沿的研究方向。
课程资源
资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在这个Github仓库中。此外也可以参考 KuangjuX 实现的 MIT 6.S081 的几个 lab 的题解,里面亦有详细的解法和补充知识,另外,KuangjuX 也使用 Rust 语言重新实现过 xv6-riscv 操作系统:xv6-rust,里面对于 xv6-riscv 有更为详细的思考和讨论,感兴趣的同学可以看一下哦。
MIT 6.S081: Operating System Engineering
课程简介
- 所属大学:麻省理工学院
- 先修要求:体系结构 + 扎实的C语言功底 + RISC-V汇编语言
- 编程语言:C,RISC-V
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150小时
麻省理工学院大名鼎鼎的PDOS实验室开设的面向MIT本科生的操作系统课程。开设这门课的教授之一 —— Robert Morris教授曾是一位顶尖黑客,世界上第一个蠕虫病毒Morris就是出自他之手。
这门课的前身是MIT著名的课程6.828,MIT的几位教授为了这门课曾专门开发了一个基于X86的教学用操作系统JOS,被众多名校作为自己的操统课程实验。但随着RISC-V的横空出世,这几位教授又基于RISC-V开发了一个新的教学用操作系统xv6,并开设了MIT6.S081这门课。由于RISC-V轻便易学的特点,学生不需要像此前JOS一样纠结于众多X86“特有的”为了兼容而遗留下来的复杂机制,而 可以专注于操作系统层面的开发。
这几位教授还专门写了一本教程,详细讲解了xv6的设计思想和实现细节。
这门课的讲授也很有意思,老师会带着学生依照xv6的源代码去理解操作系统的众多机制和设计细节,而不是停留于理论知识。每周都会有一个lab,让你在xv6上增加一些新的机制和特性,非常注重学生动手能力的培养。整个学期一共有11个lab,让你全方位地深刻理解操作系统的每个部分,非常有成就感。而且所有的lab都有着非常完善的测试框架,有的测试代码甚至上千行,让人不得不佩服MIT的几位教授为了教好这门课所付出的心血。
这门课的后半程会讲授操作系统领域的多篇经典论文,涉及文件系统、系统安全、网络、虚拟化等等多个主题,让你有机会接触到学界 最前沿的研究方向。
课程资源
资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在这个Github仓库中。此外也可以参考 KuangjuX 实现的 MIT 6.S081 的几个 lab 的题解,里面亦有详细的解法和补充知识,另外,KuangjuX 也使用 Rust 语言重新实现过 xv6-riscv 操作系统:xv6-rust,里面对于 xv6-riscv 有更为详细的思考和讨论,感兴趣的同学可以看一下哦。
一些可以参考的博客
CS144: Computer Network
课程简介
- 所属大学:Stanford
- 先修要求:一定的计算机系统基础,CS106L
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:100小时
这门课的主讲人之一是网络领域的巨擘Nick McKeown教授。这位拥有自己创业公司的学界业界双巨佬会在他慕课每一章节的最后采访一位业界的高管或者学界的高人,非常开阔眼界。
在这门课的Project中,你将用C++循序渐进地搭建出整个TCP/IP协议栈,实现IP路由以及ARP协议,最后利用你自己的协议栈代替Linux Kernel的网络协议栈和其他学生的计算机进行通信,非常amazing!
课程资源
资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在这个Github仓库中。
CS144: Computer Network
课程简介
- 所属大学:Stanford
- 先修要求:一定的计算机系统基础,CS106L
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:100小时
这门课的主讲人之一是网络领域的巨擘Nick McKeown教授。这位拥有自己创业公司的学界业界双巨佬会在他慕课每一章节的最后采访一位业界的高管或者学界的高人,非常开阔眼界。
在这门课的Project中,你将用C++循序渐进地搭建出整个TCP/IP协议栈,实现IP路由以及ARP协议,最后利用你自己的协议栈代替Linux Kernel的网络协议栈和其他学生的计算机进行通信,非常amazing!
课程资源
资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在这个Github仓库中。
一些可以参考的博客
- Lexssama's Blogs
- huangrt01
- kiprey
- 康宇PL's Blog
- doraemonzzz
- ViXbob's libsponge
- 吃着土豆坐地铁的博客
- Smith
- PKUFlyingPig
- 星遥见
- EIMadrigal
- Joey