操作系统
作者:解琛
时间:2020 年 9 月 7 日
二、研究安排
2.1 参考教材
-
Operating Systems: Three Easy Pieces
- 操作系统:三大简易元素
-
Operating System Concepts
- 操作系统概念
-
Operating Systems:Internals and Design Principles
- 操作系统:精髓与设计原理
2.2 操作系统原理与实现
围绕操作系统内核的原理进行研究。
重点是对图中红色圈出的部分进行研究。
- 包含了操作系统的系统结构,操作系统是一个大型软件,我们需要了解其构成的形式;
- 操作系统主要是通过中断来响应外设的请求,同时通过系统调用为应用提供一些相应的支持。
接着就是关注操作系统内部的一些实现,围绕 CPU 和内存进行研究,通过操作系统的管理,更有效的利用这方面的资源。
- 操作系统结构;
- 中断及系统调用;
- 内存管理
- 进程管理
- 处理机调度
- 同步互斥
最后是和 I/O 相关, I/O 包含了文件系统,是存储系统的一部分。
还有一些是其他一些外部设备(比如打印机),了解一下。
- 文件系统
- I/O 子系统
2.3 基础实验
2.3.1 uCore
这是清华计算机系,近十年一直学习的比较基础的实验内容。
基于 x86 用 C 编写一个操作系统。
- 实验零:操作系统实验准备;
- 实验一:系统软件启动过程;
- 实验二:物理内存管理;
- 实验三:虚拟内存管理;
- 实验四:内核线程管理;
- 实验五:用户进程管理;
- 实验六:调度器;
- 实验七:同步互斥;
- 实验八:文件系统。
2.3.2 rCore
基于 RISC-V 这种新的 CPU 上面,用 Rust 语言编写操作系统。
对于 RISC-V 这种 CPU,比 x86 简单不少,做出了很多操作系统开发的支持,相对会比较简单些。
用 Rust 代替 C,其学习的难度稍稍大了些,其编程可靠性和安全性都有其独特之处。
- 第一章:独立式可执行程序;
- 第二章:最小化内核;
- 第三章:中断;
- 第四章:内存管理;
- 第五章:内存虚拟化;
- 第六章:内核线程;
- 第七章:线程调度;
- 第八章:进程;
- 第九章:文件系统;
- 第十章:同步互斥。
2.4 课程设计
在各种 CPU 平台上对操作系统进行移植。
- RISC-V;
- x86-32;
- x86-64;
- MIPS;
- ARM。
对操作系统内核功能的实现和拓展。
- GUI;
- 驱动;
- 内核可加载模块;
- 微内核。
围绕操作系统分析工具进行研究和探讨。
- 错误分析;
- 行为分析;
- 模拟器。
围绕操作系统的实验设计进行研究和探讨。
- uCore;
- rCore;
- zCore。
围绕操作系统的新方向进行探索。
- Rust;
- go 语言;
- 内核语言。