# Introduction

* [ucore实验指导书](https://kelee.gitbook.io/ucore-os-on-risc-v64/)
* [ucore labs 1-8 源码](https://github.com/nkgongxl/ucoreonrv/tree/code_practice)

## 实验总体流程

1. 认真上操作系统的理论课程；
2. 阅读[ucore实验指导书](https://kelee.gitbook.io/ucore-os-on-risc-v64/)，并参考其内容完成联系和实验报告;
3. 在实验环境中完成实验并提交到自己的[github](https://github.com/)上；
4. 遇到问题，首先查询手册等其他资料，先自行解决；
5. 如若不能解决，可在飞书群里提问，可以互相讨论，有助教老师答疑。

## 学习目标与对应手段

1. 掌握OS基本概念：通过上课与学习教材，能理解OS原理与概念；阅读指导书并分析源码，能理解`lab_codes_answer`的labs运行结果。
2. 掌握OS设计实现：在1的基础上，能够通过编程完成`lab_codes`的8个lab实验中的基本练习和实验报告。
3. 掌握OS核心功能：在2的基础上，能够通过编程完成`lab_codes`的8个lab实验中的challenge练习。
4. 掌握OS科学研究：联系老师，加入实验室，开始科研吧。

## 友情提示

1. 课程铺垫——计算机组成原理、C语言、数据结构
2. 工具掌握——命令行 [shell](http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80)、软件管理 [apt-get](http://wiki.ubuntu.org.cn/Apt-get%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)/[aptitude](https://blog.csdn.net/loongwong2011/article/details/52708818)、版本管理 [git](http://www.cnblogs.com/cspku/articles/Git_cmds.html)/[github](http://www.worldhello.net/gotgithub/index.html)、代码阅读 [understand](http://oslab.mobisys.cc/resource/Understand/)/[VSCode](https://segmentfault.com/a/1190000009519736)、代码比较 [diff](https://www.cnblogs.com/itech/archive/2009/08/19/1549729.html)/[meld](https://linuxtoy.org/archives/meld-2.html)、开发编译调试 [gcc](https://wiki.ubuntu.org.cn/Gcchowto)/[gdb](http://wiki.ubuntu.org.cn/%E7%94%A8GDB%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F)/[make](https://blog.csdn.net/a_ran/article/details/43937041)、硬件模拟器 [qemu](http://wenku.baidu.com/view/04c0116aa45177232f60a2eb.html)、md文档编写 [Typora](https://blog.csdn.net/qq_41261251/article/details/102817673)

## 实验报告要求

1. 独立完成；
2. 用Markdown语言编写；
3. 报告内容包括但不仅限于：实验目的、实验内容、实验步骤、实验结果、遇到的问题与解决方法；
4. 报告编写完需按时发送给助教并上传到自己的github仓库里。

## 维护者

<kelee@mail.nankai.edu.cn>

如若对本指导书有任何疑问，请联系维护者！

Reference

[ucore step by step](https://1790865014.gitbook.io/ucore-step-by-step/)
