# HIT OS: Operating System

## 课程简介

- 所属大学：哈尔滨工业大学
- 先修要求：C 语言
- 编程语言：C 语言、汇编
- 课程难度：🌟🌟🌟🌟
- 预计学时：100 小时+

如果你在知乎上搜索“操作系统如何自学”、“操作系统的公开课推荐”、“有哪些让你相见恨晚的计算机课程”等问题，哈工大李治军老师的操作系统课程大概率都会在某条高赞回答的推荐里。这是一门知名度较高、颇受欢迎的中文计算机课程。

这门课善于站在学生角度循循善诱。例如，课程从“弱弱地问，什么是操作系统”来“揭开操作系统钢琴的盖子”，从 CPU 的直观管理引出进程概念，从“那就首先让程序进入内存”引出内存管理。

这门课注重理论和实践相结合。操作系统是看得见摸得着的东西，李老师反复强调一定要做实验，如果只看视频纸上谈兵，是学不好操作系统的。课程基于实际的 Linux 0.11 源码（总代码量约两万行）进行讲解和实验，共有八个小实验，四个大实验。

当然，这门课也有一些瑕不掩瑜的地方。例如，Linux 0.11 是很早期工业界的代码，不是为了教学而设计的。因此在实验过程中会有一些避不开的晦涩难懂的原生代码，但它们对理解操作系统其实并没有太大帮助。

## 课程资源

- 课程网站：<https://www.icourse163.org/course/HIT-1002531008>
- 课程视频：<https://www.bilibili.com/video/BV19r4y1b7Aw/?p=1>
- 课程教材一：[《Linux 内核完全注释》](https://book.douban.com/subject/1231236//)
- 课程教材二：[《操作系统原理、实现与实践》](https://book.douban.com/subject/30391722/)
- 课程作业：<https://www.lanqiao.cn/courses/115>

## 资源汇总

@NaChen95 在学习这门课中的八个实验作业的原理分析和实现都汇总在 [NaChen95 / Linux0.11](https://github.com/NaChen95/Linux0.11) 中。