logo
1
0
Login
docs: 添加项目文档

项目三 - 操作系统开发云原生基础设施建设

简介

本项目方向是一系列小任务的集合,目的是将 rCore-Tutorial、ArceOS、EulixOS 等开源操作系统相关仓库或项目移植到 CNB 平台,并在 CNB 平台搭建基础设施(如:CI/CD),云原生开发环境及 Docker 运行镜像,最终实现操作系统内核开发的云原生环境搭建。

优先推荐参加过清华大学开源操作系统训练营的学员参与,由于本项目小任务相对简单,各位可根据情况优先选择项目一、二作为项目阶段选题,本选题作为辅助学习。

任务一:在 CNB 平台移植 Rustlings 实验,并配置云原生开发环境

Rustlings 是一个由 Rust 社区维护的,面向 Rust 初学者的交互式学习工具,通过小型练习帮助用户逐步掌握语言的核心概念。

Rustlings 的官方仓库: https://github.com/rust-lang/rustlings

清华大学开源操作系统训练营团队基于 Rustlings 的一个历史版本进行修改,增加了部分题目与异步的测评程序,形成了现在在训练营中所使用的 Rustlings。

训练营 Rustlings: https://github.com/LearningOS/rustling-classroom-2025s-rustling-25S-template

训练营 Rustlings 基于 GitHub Actions 设计了自动化测评流程,详细脚本配置位于: https://github.com/LearningOS/rustling-classroom-2025s-rustling-25S-template/blob/main/.github/workflows/rust.yml

本任务的目的在于将训练营 Rustlings 仓库从 GitHub 移植到 CNB 平台,确保可以正确运行自动化测评,并提供云原生开发环境。

关于 Rust 语言的资料: Rust 程序设计语言 - Rust 程序设计语言 简体中文版

任务二:在 CNB 平台移植 rCore-Tutorial 实验,并配置云原生开发环境

rCore-Tutorial 是一个面向操作系统开发学习的开源教程项目,基于 Rust 语言实现一个简易的类 Unix 内核(名为 rCore)。它最初由清华大学计算机系的师生开发,旨在通过实践帮助学习者深入理解操作系统的核心机制,同时掌握 Rust 在系统编程中的应用。

训练营 rCore-Tutorial 仓库: GitHub - LearningOS/os-rcore-classroom-2025s-rcore-rCore-Camp-Code-2025S: os-rcore-classroom-2025s-rcore-rCore-Camp-Code-2025S created by GitHub Classroom

rCore-Tutorial 的测评较为复杂,测例也较为丰富,因此具有独立的测试仓库: https://github.com/LearningOS/rCore-Tutorial-Test-2025S rCore-Tutorial 具有独立的实验指导书: rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档 ContentsMenuExpandLight modeDark modeAuto light/dark mode

rCore-Tutorial 的自动化测评脚本配置分布于多个分支下,每个分支对应一个 lab,如 lab1 的脚本位于: os-rcore-classroom-2025s-rcore-rCore-Camp-Code-2025S/.github/workflows/build.yml at ch3 · LearningOS/os-rcore-classroom-2025s-rcore-rCore-Camp-Code-2025S

本任务的目的与任务一类似,将 rCore-Tutorial 仓库与 rCore-Tutorial-Test 仓库从 GitHub 移植到 CNB 平台,确保可以正确运行自动化测评,并提供云原生开发环境。

任务三:在 CNB 平台移植 OSCamp-ArceOS 实验,并配置云原生开发环境

OSCamp-ArceOS 是一个实验性的组件化操作系统,完全使用 Rust 语言编写,该项目的设计深受 Unikraft 项目的启发,这个项目是开源操作系统训练营第三阶段的核心教学内容,通过剪裁版本让同学们更好地理解操作系统的核心概念。

OSCamp-ArceOS 采用组件化设计理念,具有以下特色:

  • 模块化架构:包含内存管理 (axalloc)、文件系统 (axfs)、网络栈 (axnet)、任务调度 (axtask) 等独立模块
  • 多平台支持:支持 x86_64、riscv64、aarch64 三种架构
  • 丰富功能:包含多线程、调度器、网络驱动、TCP/UDP 协议栈、文件系统等完整 OS 功能

任务具体说明

  1. 请按照 OSCamp-ArceOS 项目的要求,将项目代码从 GitHub 移植到 CNB 平台。

    训练营 OSCamp-ArceOS 仓库: https://github.com/LearningOS/arceos-classroom-2025s-arceos-2025s-oscamp-stage3

  2. 请配置项目的 CI/CD 流水线,确保项目代码的自动化测试,测评包含以下几个核心练习:

    • 颜色输出测试 - 验证终端颜色输出功能
    • 文件系统测试 - 测试内存文件系统的重命名功能
    • 内存分配测试 - 测试替代内存分配器
    • HashMap 支持测试 - 验证高级数据结构支持
    • 系统映射测试 - 测试内存映射功能
    • 虚拟化测试 - 简单虚拟机监控器测试

    自动化测评脚本请参考:https://github.com/LearningOS/arceos-classroom-2025s-arceos-2025s-oscamp-stage3/tree/main/scripts

  3. 请配置项目的云原生开发环境,包括 Docker 镜像构建、Kubernetes 集群等。

    关于 ArceOS 的配置部分,请参考 https://rcore-os.cn/arceos-tutorial-book/index.html 中的第一章《实验环境配置》,将配置命令打包形成镜像最终构建完成完整的实验环境

关于 CI 的说明

  • CI 要求能实现对实验的准确测评并生成一份对应的测评结果

  • CI 拥有完整规范的日志输出,可以让完成实验的学员通过日志快速定位问题和调试

  • 不要求实现向排行榜接口发送成绩的功能,只要求最后可以生成一份对应的 JSON 作为实验成绩,JSON 格式如下:

    { "name": "提交者 CNBID", "score": 得分, "totalScore": 总分 }