README

清华大学操作系统课程(2019)

操作系统是计算机系统中负责管理各种软硬件资源的核心系统软件,为应用软件运行提供良好的环境。掌握操作系统的基本原理及其核心技术是研究型大学计算机专业本科毕业生的基本要求。本课程是计算机专业核心课,以主流操作系统为实例,以教学操作系统ucore为实验环境,讲授操作系统的概念、基本原理和实现技术,为学生从事操作系统软件研究和开发,以及充分利用操作系统功能进行应用软件研究和开发打下扎实的基础。

2019年春季开课,16周完成,主要包括:操作系统结构、中断/异常与系统调用、OS启动、内存管理、进程/线程管理、调度、同步扶持、进程间通信、死锁处理、文件系统、I/O系统

news

本课程学习流程(for拿清华学分的同学)

    1. 预习,完成第i周课前视频学习(optional)
    2. 完成第i周基本练习(optional)
    3. 上课听讲,提问/被提问
    4. 在deadline前,按序完成ucore_lab实验
    5. 复习,做课后练习,if (碰到问题) 到piazza的论坛上提问;
    6. 在规定时间参加期中/期末考试;

课程参考书

上课时间地点 (2019春季,一周两次课(1-13周))

  • 星期一(1-13周) 上午 第2大节,(上课 9:50-11:25) (交流 11:30-12:15) 操作系统 30240243 地点: 六教6A215/6A315
  • 星期四(1-13周) 上午 第1大节,(上课 8:00-9:35) 操作系统 30240243 地点: 六教6A215/6A315
  • 14-16周 大实验部分的交流讨论

课程课件

课程实验 ucore os lab

 - 完成的实验和报告需要按时提交到网络学堂(for拿清华学分的同学)
 - 在线实验环境基于"实验楼"在线平台
 - 相关参考资料用于学习和了解更多实验相关的背景/软件/硬件/编程等细节

以往在线视频

常见问题

习题与作业

更深入了解OS

课程交流

操作系统课联系方式

助教

  • 在岗: 路橙、戴臻暘、王润基、贾越凯、冀伟清
  • 已退休:沈游人、甄艳洁、张蔚、李曈、茅俊杰、何嘉权、曹睿东、武祥晋、辛云星、刘聪、常铖 吴燕妮 张禹 郭旭 陈土其 ...

教师

  • 向勇老师 email: xyong AT tsinghua.edu.cn
  • 陈渝老师 email: yuchen AT tsinghua.edu.cn

兴趣

如果你完成了OS课程和独立完成了ucore os lab,说明你对OS课程有兴趣或有能力挑战OS,也许你想尝试一下OS相关的科研,欢迎到清华OS课题组来实习。

下面是我们正在/准备要想做的一些研究探索:

  • 用RUST语言重新写OS on x86-64, risc-v, arm
  • 面向异构(CPU+GPU)架构的系统优化技术研究
  • 操作系统缺陷分析与改进
  • 操作系统动态分析/插桩(基于Ftrace,perf,eBPF等)分析
  • 操作系统子系统全部或部分特征正确性(基于symbolic execution+SMT)分析/验证
  • 面向操作系统不同版本的差异性分析(基于symbolic execution)
  • 操作系统TCP/IP协议栈优化
  • 操作系统安全隔离(基于硬件扩展或SVA等)技术研究
  • 操作系统虚拟化优化(dune,kvm等)研究
  • Linux PREEMPT_RT 分析与改进
  • Linux kernel的LLVM支持
  • Linux Kernel的版本自动升级技术(基于LLVM等)
  • 操作系统分层机制中的潜在缺陷和优化改进方法
  • Android全系统分析与性能优化
  • 基于深度学习与数据挖掘的操作系统语义理解
  • RISC-V CPU相关的OS/Compiler优化研究
  • 面向多核CPU架构的操作系统&VMM&Runtime建模、优化、测试用例生成、预测
  • 面向CPU/GPU异构架构的操作系统&VMM&Runtime建模、优化、测试用例生成、预测
  • 面向TPU/NPU异构架构的操作系统&VMM&Runtime建模、优化、测试用例生成、预测
  • 基于fuzzing&symbol execution/形式化证明的OS正确性规范设计、建模、设计与实现改进
  • 基于fuzzing&symbol execution的OS bug finding技术研究
  • 实时OS性能优化技术研究
  • OS online updating
  • OS design for Mixed Critical Systems
  • OS optimization/isolation for single space memory
  • OS for user-level interrupt/driver
  • Bridging the Semantic Gap between App/OS/HW

如果有各种意见、建议或对上列课题/项目感兴趣,想到清华OS实验室实习的同学/工程师(面向全国),欢迎发信息或简历给陈渝老师(yuchen AT tsinghua.edu.cn)发email。目前已有北大、北航、北工大、南开、电子科大、西安邮电、东北大学、东南大学等学校的博士生/硕士生/本科生到OS实验室进行学术/工程类的实习。 谢谢!