rCore-Tutorial-Book 第三版#
欢迎来到 rCore-Tutorial-Book 第三版!
欢迎参加 2022年开源操作系统训练营!
注解
项目简介#
这本教程旨在一步一步展示如何 从零开始 用 Rust 语言写一个基于 RISC-V 架构或者 Arm64 的 类 Unix 内核 。每章节还附带一些练习,用来帮助同学们巩固所学知识。
文档对应框架代码:
RISCV64: rCore-Tutorial-v3
ARM64: rCore-Tutorial-v3-arm64
文档章节对应实验代码:
第零章:操作系统概述: 不对应代码,简单讲述了 OS 一些基本概念,介绍了该实验的一些基本情况。
第一章:应用程序与基本执行环境: 对应代码 ch1 分支。
第二章:批处理系统: 对应代码 ch2 分支。
第三章:多道程序与分时多任务: 对应代码 ch3 分支。
第四章:地址空间: 对应代码 ch4 分支。
第五章:进程: 对应代码 ch5 分支。
第六章:文件系统: 对应代码 ch6 分支。
第七章:进程间通信与 I/O 重定向: 对应代码 ch7 分支。
第八章:并发: 对应代码 ch8 分支。
第九章:I/O设备管理: 对应代码 ch9 分支。
注解
ARM64 对应代码尚未实现 ch9。
导读#
请大家先阅读 第零章 ,对于项目的开发背景和操作系统的概念有一个整体把控。
在正式进行实验之前,请先按照第零章章末的 实验环境配置 中的说明完成环境配置,再从第一章开始阅读正文。
每一个章节都会先讲述对应框架代码的开发思路与过程,然后提出一些练习。对于只想完成实验的同学,可以浏览每章节实验前的部分,结合代码理解框架后,专注于完成实验后的练习。
该文档正文部分主要采用 RISC-V 进行讲述,对于 RISC-V 与 ARM 有区别的硬件相关部分,在第一到第四章节末尾的`arm相关` 部分进行了讲解,对于需要格外注意的点在正文中进行了标注。
项目协作#
修改和构建本项目 介绍了如何基于 Sphinx 框架配置文档开发环境,之后可以本地构建并渲染 html 或其他格式的文档;
reStructuredText 基本语法 给出了目前编写文档才用的 ReStructuredText 标记语言的一些基础语法及用例;
时间仓促,本项目还有很多不完善之处,欢迎大家积极在每一个章节的评论区留言,或者提交 Issues 或 Pull Requests,让我们 一起努力让这本书变得更好!
欢迎大家加入项目交流 QQ 群,群号:735045051
项目进度#
2020-11-03:环境搭建完成,开始着手编写文档。
2020-11-13:第一章完成。
2020-11-27:第二章完成。
2020-12-20:前七章代码完成。
2021-01-10:第三章完成。
2021-01-18:加入第零章。
2021-01-30:第四章完成。
2021-02-16:第五章完成。
2021-02-20:第六章完成。
2021-03-06:第七章完成。到这里为止第一版初稿就已经完成了。
2021-10-20:第八章代码于前段时间完成。开始更新前面章节文档及完成第八章文档。
2021-11-20:更新1~9章,添加第八章(同步互斥),原第八章(外设)改为第九章。
2022-01-02:第一章文档更新完成。
2022-01-05:第二章文档更新完成。
2022-01-06:第三章文档更新完成。
2022-01-07:第四章文档更新完成。
2022-01-09:第五章文档更新完成。
2022-08-15:arm 对应章节完成。