# 0. 从零开始写 OS

## 前言

本系列文章记录了使用 Rust 编程语言编写一个小型操作系统的详细过程。每篇文章包含所需所有所需代码和相关知识点讲解。

* [代码](https://github.com/LearningOS/rcore_step_by_step/os)
* [文档](https://learningos.github.io/rcore_step_by_step_webdoc/)

## 如何使用

为了方便起见，建议使用 [docker](http://www.runoob.com/docker/docker-tutorial.html) ，可以省去配置环境的功夫。

在工作目录下创建 **Makefile** ：

```
docker:
    sudo docker run -it --mount type=bind,source=$(shell pwd)/..,destination=/mnt panqinglin/rust_riscv bash
```

进入 docker 后，执行 `cd mnt` ，即可看见工作目录，然后就可以开始写代码啦！

> 每一章或小节对应的源代码可以在 [GitHub](https://github.com/LearningOS/rcore_step_by_step) 的 commit 中找到， 且 commit log 与每一篇文章的主标题或副标题内容大致对应。

## reference

* <https://github.com/rcore-os/rCore>
* <https://github.com/oscourse-tsinghua/rcore_plus/tree/lab8-rv32-tinyfs>
* <https://github.com/chyyuu/rcore_plus/tree/lab1-rv32-interrupt> .. <https://github.com/chyyuu/rcore_plus/tree/lab8-rv32-fs>

## rCore Summer of Code 2019

* <https://github.com/LearningOS/rcore_step_by_step/wiki/rCore-Summer-of-Code>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xy-plus.gitbook.io/rcore-step-by-step/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
