Rust简介

Rust开发环境

工具链

Rust官方提供了完善的开发工具链。

简单介绍如下:

  • rustup:工具链管理器。用于工具链软件的切换和升级。
  • rustc:编译器。
  • cargo:项目和包管理器。
  • xargo:扩展版cargo,支持使用自定义的std库。开发OS必备。

常用命令举例:

# 升级Rust工具链
rustup update
# 设置当前目录默认工具链版本
rustup override set nightly-2018-04-01
# 编译单文件
rustc ... TODO
# 新建Rust库/命令行项目
cargo new --lib/--bin proj_name 
# 对当前项目进行构建/运行二进制文件/运行单元测试/运行基准测试/清理
cargo build/run/test/bench/clean

周边辅助工具:

  • rustfmt:自动代码格式化
  • clippy:静态代码检查

包管理

Rust有完善的包管理模块,集中的包发布平台crates.io,在线文档平台docs.rs

每个项目中都有一个Cargo.toml文件,记录编译配置和依赖的包。

要使用一个包,只需在Cargo.toml中加入包名,并在源码根文件中导入即可。

# Cargo.toml
# 声明依赖
[dependencies]
bit_field = "0.7.0"
// lib.rs
// 导入包
extern crate bit_field;
// 使用
use bit_field::BitField;

单元测试

TODO

但在写OS时,所有依赖QEMU环境的部分都是无法单元测试的。这部分下文会介绍集成测试的方法。

另一方面,这也鼓励我们将平台无关的代码独立出来,以库的形式发布。

文档

TODO

BareMetal环境

以上我们介绍了Rust开发标准应用程序的环境。但用它写OS还需要一些额外的配置。

核心库与标准库

no_std

TODO

target配置文件

TODO

更多内容可参考:https://os.phil-opp.com/freestanding-rust-binary/

results matching ""

    No results matching ""