Skip to content

M1 里程碑规划与任务拆分:实现可在 QEMU 启动的最小 Rust 微内核 #1

@mackz-maxw

Description

@mackz-maxw

目标

  • x86_64 架构、WSL2 Ubuntu22 开发、Limine 引导、Apache-2.0 许可
  • 实现可在 QEMU 启动并运行的最小微内核,能启动用户态测试程序并通过 IPC 与内核通信
  • 启用 GitHub Actions CI,实现自动化构建与 QEMU 启动测试

交付物

  1. Bootloader 与内核引导:Limine 启动,内核入口与启动日志输出
  2. 基础内核初始化:中断/异常向量设置,日志与 panic 处理
  3. 内存管理:页表、物理页分配器、虚拟地址空间初始化
  4. 线程与调度器:TCB/上下文切换、时间片调度、时钟中断
  5. 基础 IPC/能力模型雏形:同步/异步消息通道设计与实现
  6. 系统调用框架:syscall 号表、最小集实现(thread_create、ipc_send/recv、sleep/yield)
  7. 用户态程序与加载:载入/调度最简 user 程序,演示打印与 IPC
  8. 构建系统与 QEMU 脚本:Cargo 工作区、Makefile/justfile、qemu.sh 支持一键启动
  9. CI 工作流:GitHub Actions 构建QEMU运行测试
  10. 架构与开发文档:docs/m1-roadmap.md(含目录结构/模块职责/代码规范/unsafe 使用指南等)

细分任务建议(部分可独立 issue)

  • x86_64 架构与 boot (Limine) 适配;qemu.sh 实现及文档
  • bootloader 入口、内核主循环与基本日志设施
  • 基础异常/中断向量初设与 panic/error/display 宏
  • 页表/内存管理初始化及物理页分配设计初稿
  • 基础 TCB/线程上下文与切换原型
  • Round-Robin 调度与时钟中断处理
  • IPC 原型:同步/异步消息通道 & 内核对象能力机制初稿
  • syscall 分发与最小系统调用集
  • 用户态微程序加载、内核到用户切换及 IPC 演示
  • Cargo/Makefile、CI 配置(含交叉编译工具链管理建议)
  • 架构、贡献、unsafe 约定、许可证文档与依赖声明

项目结构(建议)

  • src/kernel/ 核心模块
  • src/mm/ 内存管理
  • src/sched/ 调度/线程
  • src/ipc/ IPC/能力模型
  • src/syscall/ syscall框架
  • user/ 用户程序
  • scripts/ 启动/构建脚本
  • docs/ 设计/贡献文档

参考项目

Redox OS、seL4、Tock OS、xv6

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions