本仓库为 ArceOS 的一个剪裁版本,提供了更多初始化的组件与可用于训练的题目。
arceos/tour/new[n] 下,教程的运行指令在对应文件 arceos/tour/new[n]/main.rs 中 fn main() 之前的注释中。本教程相当于旧教程中 rCore-Tutorial 和 Arceos-Tutorial 两部分,为帮助不熟悉操作系统内核的同学快速上手 Arceos 而设计。
arceos/tour/new[n] 下,需要阅读对应目录下的代码与注释完成实验。如无特殊说明,默认所有命令在 arceos/ 目录下运行。// EXERCISE 开头的注释是需要完成的实验内容。[rust] 的部分为 Rust 语言相关知识,已熟悉 Rust 的同学可跳过。main.rs 中 main() 函数的注释顺序阅读,除特殊标注外,不需要完全理解其他文件的内容。第 n 节教程对应 arceos/tour/new[n] 目录。每个教程的运行指令在对应文件 arceos/tour/new[n]/main.rs 中 fn main() 之前的注释中。例如第一节实验的运行指令在:
//make run A=tour/new1
#[cfg_attr(feature = "axstd", no_mangle)]
fn main() {
// 本教程...
默认情况下,请在 arceos/ 目录(而非教程目录)下执行运行命令。
教程的主体是实验中的代码与注释,请按顺序阅读注释以完成实验。
这是第一版 Arceos 教程,内容更完整,但需要有 rCore 教程与操作系统基础课程的学习基础,预计需要6星期课时学习。
可以参考执行如下命令:
sudo apt-get update sudo apt-get install -y \ wget \ xxd \ curl \ gcc \ g++ \ make \ libclang-dev \ qemu-system-misc \ bash \ sudo \ git \ dosfstools \ build-essential \ pkg-config \ libssl-dev \ libz-dev \ libclang-dev curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" cargo install cargo-binutils mkdir -p /opt/musl && cd /opt/musl wget https://musl.cc/aarch64-linux-musl-cross.tgz wget https://musl.cc/riscv64-linux-musl-cross.tgz wget https://musl.cc/x86_64-linux-musl-cross.tgz tar zxf aarch64-linux-musl-cross.tgz tar zxf riscv64-linux-musl-cross.tgz tar zxf x86_64-linux-musl-cross.tgz qemu-system-riscv64 --version source $HOME/.cargo/env
total-test.sh 代表执行所有测试,其他脚本分别执行一个测例在main分支根目录下执行:
./scripts/total-test.sh > tmp.txt
此时会对scripts下所有脚本进行评测,并将结果输出到 tmp.txt 中。每一个评测脚本 100 分,通过即可获得满分。
请切换到lab1分支,执行
./verify_lab1.sh > tmpa.txt
此时会对挑战题进行评测,并将结果输出到 tmpa.txt 中。
关于挑战题的评分逻辑,详见challenge。