#page-table #mmu

no-std page-table-generic

Generic page table walk and map

22 releases

Uses new Rust 2024

0.7.0 Feb 9, 2026
0.6.1 Sep 11, 2025
0.6.0 May 30, 2025
0.5.3 Feb 8, 2025
0.2.2 Nov 13, 2024

#48 in No standard library

Download history 87/week @ 2025-10-25 320/week @ 2025-11-01 80/week @ 2025-11-08 59/week @ 2025-11-15 85/week @ 2025-11-22 58/week @ 2025-11-29 44/week @ 2025-12-06 45/week @ 2025-12-13 75/week @ 2025-12-20 64/week @ 2025-12-27 51/week @ 2026-01-03 28/week @ 2026-01-10 73/week @ 2026-01-17 167/week @ 2026-01-24 130/week @ 2026-01-31 453/week @ 2026-02-07

832 downloads per month
Used in 44 crates (4 directly)

MIT/Apache

52KB
1K SLoC

雀实操作系统 Sparreal

麻雀虽小,五脏俱全的实时操作系统。

环境搭建

git clone --recurse-submodules  git@github.com:qclic/sparreal-os.git
  1. 安装 Rust
  2. 安装依赖
cargo install ostool

Windows

安装Qemu, 并加入环境变量。

Linux

安装Qemu

Mac

安装Qemu

构建

ostool build

Qemu 测试

ostool run qemu

Qemu + Vscode 断点调试

ostool run qemu -d

windows

msys2 安装 gdb-multiarch, 并添加到 PATH

pacman -S mingw-w64-ucrt-x86_64-toolchain

vscode 选择调试配置 KDebug, 点击 Run and Debug 按钮。

U-Boot 调试

需要连接开发板串口。

ostool run uboot

配置

首次执行 ostool 任务后,会在根目录生成默认配置文件 .project.toml

平台适配

  1. 实现平台接口
  2. 启动内核
use sparreal_kernel::platform_if::Platform;
use sparreal_macros::api_impl;

pub struct PlatformImpl;

// 实现接口
#[api_impl]
impl Platform for PlatformImpl {
    unsafe fn wait_for_interrupt() {
        aarch64_cpu::asm::wfi();
    }
    ... other fn
}

Dependencies

~1–1.5MB
~31K SLoC