8000 kern-crates · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
@kern-crates

kern-crates

Kernel crates that can be used in multiple Rust OSes

模块发布方式与需求

模块列表

规范模块要求

对于一个模块来说,我们希望它拥有:

  • 规范的文档
  • 良好的代码风格
  • 尽量完备的测试
  • 清晰易懂的引导说明

对上述内容,我们的要求如下:

文档规范

我们引入的模块绝大部分由 Rust 编写,此时通过rustdoc进行文档的检查和生成。

  • 文档的规范详见:如何写文档 - rustdoc 手册 中文版

  • 文档检查和生成指令详见:doc.yml

    注意:为了检查是否存在缺失文档与链接,我们引入了RUSTDOCFLAGS: -D rustdoc::broken_intra_doc_links -D missing-docs

  • 关于 README.md 的撰写可见 README.md

良好的代码风格

关于代码风格的检查器有较多类型,对于 Rust 模块来说,我们默认使用rustfmtclippy进行规范性和代码风格测试。测试指令详见:ci.yml

尽量完备的测试

完备的测试指的是尽可能提高测试的覆盖率,涉及更多代码、更多边界情况。我们讨论如下情况的测试:

  • 用户态测试:即单元测试,覆盖基本的测试情况
  • 内核态测试:对于一些需要运行在内核态下的 crate,如 virtio、page_table 等,需要额外编写相关的内核态测例,并且起一个简单的 qemu 进行测试,可以参见:virtio-driver
  • 内核集成测试:内核集成测试仅当内核本体更新的时候会在自身仓库触发测试,从而保证集成测试不会冗余,因此不在模块仓库的 CI 中涉及

因此为了保证基本的测试覆盖,我们需要对于每一个模块编写各自的单元测试或集成测试,测试最基本的内容。

清晰易懂的引导说明

由于 kern-crates、os-checker 等平台会集中收集各个 crate 并且组织成为一张列表,因此我们需要对仓库进行简单的说明。

简要的说明包括对仓库的说明(about)、文档链接等信息,以及清晰的 README。

demo

以下为做的较为完善的模块的 demo,供参考:

  • kspin:包含了完整的文档、单元测试、CI 流程,但是暂未携带内核态测试
  • elf_parser_rs:简单的 ELF 分析工具,不需要加入内核态测试
  • virtio-driver:携带内核态测试

Templates

以下为 crates 仓库建设时可能用到的相关模板,供参考:

Popular repositories Loading

  1. docs docs Public

    Docs for Kernel Crates

    1 2

  2. r4l r4l Public

    A crate used to compatible with Linux R4L for Rust OS

    Rust 1 1

  3. zCore zCore Public

    Rust 1

  4. doc doc Public

    Forked from os-checker/docs

    Rust 1

  5. .github .github Public

    Kernel crates that can be used in mutiple OS in Rust

    TypeScript 8

  6. CSpace CSpace Public archive

    A CSpace module for seL4 in Rust

    Rust

Repositories

Showing 10 of 169 repositories
  • ext4_rs Public Forked from yuoo655/ext4_rs

    a cross-platform rust ext4 crate

    kern-crates/ext4_rs’s past year of commit activity
    Rust 0 MIT 12 0 0 Updated May 22, 2025
  • ariel-os Public Forked from ariel-os/ariel-os

    Ariel OS is a library operating system for secure, memory-safe, low-power Internet of Things, written in Rust

    kern-crates/ariel-os’s past year of commit activity
    Rust 0 Apache-2.0 42 0 0 Updated May 22, 2025
  • embassy Public Forked from embassy-rs/embassy

    Modern embedded framework, using Rust and async.

    kern-crates/embassy’s past year of commit activity
    Rust 0 Apache-2.0 1,042 0 0 Updated May 22, 2025
  • rdrive Public Forked from drivercraft/rdrive

    A rust dyn driver manager.

    kern-crates/rdrive’s past year of commit activity
    Rust 0 MIT 2 0 0 Updated May 21, 2025
  • fdt-parser Public Forked from qclic/fdt-parser

    FDT parser

    kern-crates/fdt-parser’s past year of commit activity
    Rust 0 1 0 0 Updated May 21, 2025
  • starry-next_tmp-oscomp Public Forked from oscomp/starry-next

    A monolithic kernel based on ArceOS.

    kern-crates/starry-next_tmp-oscomp’s past year of commit activity
    Rust 0 42 0 0 Updated May 20, 2025
  • pconst Public Forked from os-module/pconst
    kern-crates/pconst’s past year of commit activity
    Rust 0 1 0 0 Updated May 18, 2025
  • polyhal Public Forked from Byte-OS/polyhal
    kern-crates/polyhal’s past year of commit activity
    Rust 0 MIT 13 0 0 Updated May 17, 2025
  • kernel_elf_parser Public Forked from Azure-stars/kernel_elf_parser

    A simple ELF parser written in rust that is useful for kernel

    kern-crates/kernel_elf_parser’s past year of commit activity
    Rust 0 3 0 0 Updated May 15, 2025
  • axvm Public Forked from arceos-hypervisor/axvm

    Virtual Machine resource management crate for ArceOS's hypervisor variant.

    kern-crates/axvm’s past year of commit activity
    Rust 0 Apache-2.0 11 0 0 Updated May 15, 2025

Top languages

Loading…

Most used topics

Loading…

0