HIT OS: Operating System
- University: Harbin Institute of Technology
- Prerequisites: C Language
- Programming Languages: C Language, Assembly
- Course Difficulty: 🌟🌟🌟🌟
- Estimated Study Hours: 100 hours+
If you search on Zhihu for questions like "how to self-study operating systems", "recommended open courses for operating systems", "computer courses you wish you had discovered earlier", etc., the operating systems course by Professor Li Zhijun of Harbin Institute of Technology (HIT) is likely to appear in the high-rated answers. It's a relatively well-known and popular Chinese computer course.
This course excels at gently guiding students from their perspective. For instance, it starts from "humbly asking, what is an operating system" to "lifting the lid of the operating system piano", deriving the concept of processes from intuitive CPU management, and introducing memory management by initially "letting the program enter memory".
The course emphasizes the combination of theory and practice. Operating systems are tangible, and Professor Li repeatedly stresses the importance of doing experiments. You won't fully grasp operating systems if you just watch videos and theorize. The course explains and conducts experiments based on actual Linux 0.11 source code (around 20,000 lines in total), with eight small labs and four projects.
Of course, this course also has minor imperfections. For example, Linux 0.11 is very early industrial code and not designed for teaching. Thus, there are some unavoidable obscure and difficult parts of the codebase in the projects, but they don't contribute much to the understanding of operating systems.
- Course Website: https://www.icourse163.org/course/HIT-1002531008
- Course Videos: https://www.bilibili.com/video/BV19r4y1b7Aw/?p=1
- Course Textbook 1: Complete Annotation of Linux Kernel
- Course Textbook 2: Operating System Principles, Implementation, and Practice
- Course Assignments: https://www.lanqiao.cn/courses/115
@NaChen95 has compiled the principles and implementations of the eight experimental assignments in this course at NaChen95 / Linux0.11.