# uCore OS实验指导书和源码网址 (2017)

- [ucore实验指导书](https://chyyuu.gitbooks.io/ucore_os_docs/content/)
- [ucore labs 1-8 源码和参考答案 ](https://github.com/chyyuu/ucore_lab)
- [os tutorial lab](https://github.com/chyyuu/os_tutorial_lab)

# 实验总体流程
1. 在[学堂在线](https://www.xuetangx.com/courses/TsinghuaX/30240243X/2015_T1/about)查看OS相关原理和labX的视频；
2. 在[实验指导书 on gitbook](https://chyyuu.gitbooks.io/ucore_os_docs/content/)上阅读实验指导书，并参考其内容完成练习和实验报告；
3. 在实验环境中完成实验并提交实验到git server（清华学生需要在学校内部的git server上，其他同学可提交在其他git server上）；
4. 如实验中碰到问题，在[在线OS课程问题集](https://chyyuu.gitbooks.io/os_course_qa/content/)查找是否已经有解答；
5. 如没有解答，可在[piazza在线OS课程问答和交流区](https://piazza.com/tsinghua.edu.cn/spring2015/30240243x/home)提问,每天（一周七日）都有助教或老师在piazza在线答疑。（QQ群 181873534主要用于OS课程一般性交流）；
6. 可进一步在[学堂在线](https://www.xuetangx.com/courses/TsinghuaX/30240243X/2015_T1/about)或[在线的操作系统课程练习题](https://chyyuu.gitbooks.io/os_course_exercises/content/)完成实验相关的练习题；

## 四种学习目标和对应手段
1. 掌握OS基本概念：看在线课程，能理解OS原理与概念；看在线实验指导书并分析源码，能理解labcodes_answer的labs运行结果
2. 掌握OS设计实现：在1的基础上，能够通过编程完成labcodes的8个lab实验中的基本练习和实验报告
3. 掌握OS核心功能：在2的基础上，能够通过编程完成labcodes的8个lab实验中的challenge练习
4. 掌握OS科学研究：在3的基础上，能够通过阅读论文、设计、编程、实验评价等过程来完成课程设计（大实验）

【**注意**】
  - **筑基内功**--请提前学习计算机原理、C语言、数据结构课程
  - **工欲善其事，必先利其器**--请掌握七种武器  [实验常用工具列表](https://github.com/chyyuu/ucore_os_docs/blob/master/lab0/lab0_ref_ucore-tools.md)
  - **学至于行之而止矣**--请在实验中体会操作系统的精髓
  - **打通任督二脉**--lab1和lab2比较困难，有些同学由于畏难而止步与此，很可惜。通过lab1和lab2后，对计算机原理中的中断、段页表机制、特权级等的理解会更深入，等会有等同于打通了任督二脉，后面的实验将一片坦途。

> [实验指导书 on gitbook](https://chyyuu.gitbooks.io/ucore_os_docs/content/)中会存在一些bug，欢迎在在[piazza在线OS课程问答和交流区](https://piazza.com/tsinghua.edu.cn/spring2015/30240243x/home)提出问题或修改意见，会有赞和奖分！

# 维护者
- yuchen AT tsinghua.edu.cn
- objectkuan AT gmail.com
- xuyongjiande AT gmail.com
