UC Berkeley CS162: Operating Systems and System Programming
课程简介
- 来源:UC Berkeley
- 先修要求:计算机体系结构(CS61C 同等水平)、C 语言
- 编程语言:C
- 课程难度:🌟🌟🌟🌟
- 预计学时:80 小时 +
Berkeley CS162 是 Berkeley 的操作系统课程,比 MIT 6.S081 更注重系统层面的编程实践。课程内容覆盖进程管理、并发、内存管理、文件系统、网络和安全。
CS162 的特点是作业量大且难度高。课程项目和作业要求你用 C 语言实现操作系统的核心组件,包括线程库、文件系统调度和网络服务器。
课程资源
- 课程网站:cs162.org
- 课程视频:YouTube
- 课程笔记:CS162 Notes(课程网站提供)
- 作业和项目:cs162.org/assignments
课程特点
- 强调并发编程:线程、锁、条件变量、信号量,这是 CS162 的核心主题
- 网络编程:包括 socket 编程和分布式系统的基础
- 安全:缓冲区溢出、权限管理、密码学基础
- 大项目:课程有一个贯穿学期的大项目,实现一个完整的网络服务器
自学建议
重视并发部分。 并发是操作系统面试的重点,也是 CS162 最花时间的章节。建议多写多练。
做所有的编程作业。 CS162 的编程作业设计得非常好,每个作业都能帮你深入理解一个核心概念。
参考 MIT 6.S081。 两门课的侧重点不同。MIT 侧重内核实现,Berkeley 侧重系统编程。互补学习效果更好。
备注
CS162 的工作量比 MIT 6.S081 更大,但 Berkeley 的课程视频质量很高,适合喜欢跟着视频学习的同学。