使用Rust开发操作系统
基本介绍
在本章中我们将要搭建一个开发操作系统的基本环境,因为使用的是Rust开发的效率将会提高不少,《使用Rust开发系统》是一个系列,首先会使用简单的方式编写一个内核,文章的结构为先讲述理论知识然后进行编程,本专栏的代码地址在这里,本专栏长期更新(最近准备软考停更一段时间)
现已完成的文章:
- 一个最小的内核
- 位运算知识
- VGA缓冲区
- 自旋锁以及print!和println!宏的实现
- Canonical地址以及虚拟地址和物理地址操作
- 段描述符,描述符与GDT
- Rust内联汇编
- TSS,Task State Segment
- 中断描述符表–IDT
- 可编程中断控制器(PIC)8259A
- GDT,IDT加载,系统运行以及GDB调试内核
- 异常处理以及双重异常
- 使用中断,时钟中断,键盘驱动
- UEFI基本介绍
- UEFI内存管理和文件系统使用
- 使用Rust开发操作系统(UEFI抽象文件系统)
- PML4T–4级分页内存
需要用的知识
很可惜…编写操作系统需要基础的编程知识和一些操作系统原理,不过我们会在编写代码之前来讲述这些原理知识(加油^_^)
项目环境
我们使用rust写操作系统时使用的环境如下()
操作系统
Linux version 5.0.0-27-generic (buildd@lgw01-amd64-031) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #28~18.04.1-Ubuntu
RUST 编译器
rustc 1.41.0-nightly (ded5ee001 2019-11-13)
安装
rust(Linux):
Rust安装请看这里
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
nightly安装(需要安装rustup 一般安装完rust后自带的)
rustup install nightly
在安装过程中可能会出现错误(众所周知的原因-_-|)多试几次就好了
在安装的时候注意component的时间,有些是缺失的,具体请看(比如提示some components unavailable for download for channel nightly: 'clippy', 'lldb-preview', 'miri'
这样的错误,使用下面的方法去安装)