本次实验的问题总结,有需要的小伙伴可以戳这里↓
GMN23362:用Rust写操作系统(一)——问题汇总zhuanlan.zhihu.com一、概要说明
本实验分为三个部分:第一部分安装必要的工具链;第二部分编写裸机程序(独立式可执行程序);第三部分构建最小的“内核”系统。由于我们的目标是编写一个操作系统,所以我们需要创建一个独立于操作系统的可执行程序,又称独立式可执行程序(freestanding executable)或裸机程序(bare-metal executable)。这意味着所有依赖于操作系统的库我们都不能使用。比如std中的大部分内容(io, thread, file system, etc.)都需要操作系统的支持,所以这部分内容我们不能使用。 但是,不依赖于操作系统的rust的语言特性我们还是可以继续使用的,比如:迭代器、模式匹配、字符串格式化、所有权系统等。这使得rust依旧可以作为一个功能强大的高级语言,帮助我们编写操作系统。
二、安装工具链
1. 安装 Rust
1) 下载 Rust
• 访问Rust的官网,下载64位的rustup-init.exe。
• 运行rustup-init.exe,选择1) Proceed with installation(default)。
2) 安装nightly版本:在cmd中输入“rustup install nightly”。
3) 默认使用nightly版本:输入“rustup default nightly”。
4) 安装bootimage,xbuild和rust-src等
• 安装bootimage: 输入“cargo install bootimage --version “ˆ0.7.3”。
• 安装xbuild:输入“cargo install cargo-xbuild”。它封装了cargo build;但它可以自动交叉编译core库和一些编译器内建库。
• 安装rust-src:cargo xbuild依赖于Rust的源代码,输入“rustup component add rust-src” 安装源代码。
• 安装llvm-tools-preview:为了运行bootimage以及编译引导程序,我们需要输入“rustup component add llvm-tools-preview”安装rustup模块。
2. 安装其他工具
• 安装 QEMU:访问QEMU官网,下载20200814版64位的QEMU。
三、创建裸机程序
1. 禁用标准库
1) 创建项目
• 输入“cargo new sjy_os”。
• 发现在C:UsersGMN23362目录下创建的“sjy_os”项目。