CS162: Operating System
- Offered by: UC Berkeley
- Prerequisites: CS61A, CS61B, CS61C
- Programming Languages: C, x86 Assembly
- Difficulty: 🌟🌟🌟🌟🌟🌟
- Class Hour: 200 hours+
The course impressed me in two aspects:
Firstly, the textbook: Operating Systems: Principles and Practice (2nd Edition) is written in an insightful but easy-to-understand way, well compensated for the lack of theoretical knowledge in MIT6.S081, I highly recommend you to read this book.
Secondly, the project for this course Pintos is a great journey for system hackers. Pintos is a toy operating system developed at Stanford for educational use. The author Ben Pfaff even published a paper to explain the design principles of Pintos.
Unlike the small but comprehensive design philosophy in MIT's xv6 labs, Pintos emphasizes system design and implementation more. The codebase is about 10,000 LOC and only provides the basic functions of a working operating system. The four projects let you add scheduler (Project1), system calls (Project2), virtual memory (Project3), and the file system (Project4) to this extremely simple operating system. All projects leave a a big design space for students and require more than 2000 LOC. Based on the feedback from Stanford students, the latter two projects take over 40 hours per person even in teams of 3-4 people.
Although it is tough, Stanford, Berkeley, JHU and many other top U.S. colleges have chosen Pintos as their OS course project. If you're really interested in operating systems, it will greatly improve your ability to write and debug low-level system code. For me, it is an invaluable experience to design, implement, and debug a large system independently.
Pintos will also be introduced as a course project in Peking University's OS Course. In the Spring 2022 semester, I worked with another TA to write a comprehensive lab documentation and provided a docker image for the ease of cross-platform development. In the last semester before graduation, I hope such an attempt can make more people fall in love with systems and contribute to the field of systems in China.
- Course Website: https://cs162.org/
- Lecture Videos: https://www.youtube.com/watch?v=YfHY0pvpRkk, videos for each lecture can be found on the course website.
- Textbook: Operating Systems: Principles and Practice (2nd Edition)
- Assignments: https://cs162.org/, 6 Homework, 3 Projects, the course website has specific requirements.
Since the Operating System Course at PKU uses the project, my implementation is not open source to prevent plagiarism.