< 返回版块

Yuan YQ 发表于 2025-11-21 11:36

moss:Rust 编写的 Linux 兼容内核

moss 是一个用纯 Rust 和汇编语言开发一个 Linux 兼容的内核,大约 26000 行代码。

架构与内存

  • 完整支持 AArch64 架构
  • 提供清晰定义的硬件抽象层(HAL),便于移植到其他架构(例如 x86_64、RISC-V)

内存管理

  • 完全启用 MMU 并支持内存页表管理
  • 支持写时复制(Copy-on-Write, CoW)内存页
  • 提供安全的异步函数,用于在内核与用户空间之间拷贝数据
  • 支持内核态和用户态的内存缺页异常处理
  • 使用 buddy 分配器管理物理地址,并使用 smalloc 进行启动阶段的内存分配及内存预留跟踪

异步内核核心

moss 的核心特性之一是在内核上下文中使用 Rust 的 async/await 模型:

  • 所有较复杂的系统调用均以 async 函数形式编写,可休眠的函数调用前需加 .await
  • 编译器强制禁止在休眠点持有自旋锁(spinlock),从而消除常见的内核死锁问题

进程管理

  • 完整的任务管理,包括调度以及通过处理器间中断(IPI)实现的任务迁移
  • 当前已实现 49 个 Linux 系统调用,足以运行大多数 BusyBox 命令
  • 通过 clone() 系统调用提供高级进程/线程派生能力
  • 支持向进程和线程投递及触发信号

虚拟文件系统与文件系统驱动

  • 提供完全基于异步抽象的虚拟文件系统(VFS)
  • 驱动支持包括:
    • 内存盘(ramdisk)块设备实现
    • FAT32 文件系统驱动(只读)
    • devtmpfs 驱动,用于访问内核字符设备

Github: https://github.com/hexagonal-sun/moss

rapid-rs v0.1.4 发布:零配置、开箱即用的 Web 框架

用 Rust 构建 Web API 不应需要拼凑十多个 crate 并编写数百行样板代码。rapid-rs 为你带来媲美 FastAPI 和 Spring Boot 的开发效率,同时兼具 Rust 的性能与类型安全。

⚡ 特性

  • 零配置 —— 数据库、迁移、CORS、日志开箱即用
  • 类型安全 —— 路由、验证和序列化均在编译期提供保障
  • 自动生成文档 —— 从代码自动生成 Swagger UI 与 OpenAPI 规范的 API 文档
  • 内置验证 —— 附带清晰的错误提示的表单验证
  • 热重载 —— 通过 rapid dev 实现开发过程中的热重载
  • 约定优于配置
  • 生产就绪 —— 支持结构化日志、错误处理和健康检查

Github: https://github.com/ashishjsharda/rapid-rs

rootcause: 一个好用的结构化错误报告库

rootcause 是一个好用的结构化的错误报告库。目标是像 anyhow 一样易于使用(特别是 ? 运算符应当开箱即用),同时提供更丰富的结构和内省能力。

亮点

  • 上下文及附加信息:错误报告同时携带上下文(类似错误的对象)和附加信息(结构化的信息数据)
  • 支持类型参数:当你知道上下文类型时,可以为报告指定类型参数,从而实现类似 thiserror 的模式匹配
  • 合并多个报告:可将子报告组合成一棵树,同时保留所有结构和信息
  • 丰富的遍历 API: 适用于序列化、自定义格式化或构建工具。
  • 自定义钩子函数: 控制格式化方式或自动收集数据。
  • 可克隆的报告: 在一个线程记录错误的同时,在另一个线程处理它,非常方便。

与其他库的对比

  • vs. anyhow:增加了结构化能力、附件、遍历 API 和类型化报告
  • vs. thiserror:类型安全性略低(有争议),但提供了简易的回溯、附件、钩子和更丰富的格式化功能
  • vs. error-stack:API 设计理念不同,类型化上下文是可选的,并且报告支持克隆

目前最新版本是 v0.8.1,作者计划在未来的 6 个月内升级到 v1.0。 所以近期希望大家可以在真实项目中使用并给出一些反馈意见。

Github: https://github.com/rootcause-rs/rootcause

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页