#kernel #liberty #os #no-std #version #libertyos

nightly no-std bin+lib libertyos_kernel

LibertyOS 的内核

69 个版本

0.17.5 2023年7月14日
0.16.0 2023年7月2日
0.15.7 2022年2月3日
0.13.6 2021年12月27日
0.9.4 2021年11月29日

#403嵌入式开发

Download history 2/week @ 2024-03-10 297/week @ 2024-03-31

每月下载量 206

Apache-2.0

280KB
11K SLoC

LibertyOS Logo

这是 LibertyOS 内核的官方仓库。LibertyOS 是一个使用 Rust 构建、开源、免费使用的操作系统,并欢迎新的贡献者。目前,LOS 支持 x86_64 系统,可以使用简单的引导加载程序在真实硬件上启动。这个操作系统正在不断开发中,所有更改都记录在根目录下的 VERSIONHISTORY.md 文件中。如果您想查看版本之间更改的更详细说明,可以阅读 GitHub 仓库上的提交。

如何贡献

您想帮助使这个内核变得更好吗?我们有很多事情要做,我们总是需要帮助!这个仓库中有一个名为 "ideas" 的文件夹,其中包含解释内核想法的不同文件。如果您有新的想法,只需在 "ideas" 文件夹中创建一个新文件,提交一个 pull request,我们中的一位会将其合并到主分支。目前有很多优秀的功能正在开发中,我们需要尽可能多的有才华的开发者!

博客

截至 2022 年 8 月 22 日,有一个名为 "BLOG.md" 的博客文件。这将解释一些设计决策,一些开发中的问题以及未来可以期待的内容。LibertyOS 并未死亡。这个项目有一个光明的未来。

构建/运行 LibertyOS

  1. 克隆此仓库。
  2. 导航到您克隆此仓库的位置。
  3. 确保您已安装以下内容
    • cURL
    • QEMU
  4. 运行引导脚本(./bootstrap.sh)
  5. 使用 "cargo build --release" 编译内核,或在 QEMU 中运行内核,使用 "cargo run --release"。

当前实现的功能

  • x86-64 架构支持
  • Rust 的核心和 alloc Crates 支持
  • 使用链表、伙伴分配和增量分配进行内存分配
  • 基本错误处理
  • 内置于 QEMU 上运行 LOS 的支持
  • 支持多种键盘布局
  • 基本支持异步函数,包括基本任务执行器
  • 支持读写文件系统(特定文件系统的支持尚未实现,但基础已经实现)
  • 使用为LibertyOS构建的核心库(libcore)
  • 支持数学计算,包括基础代数、几何等
  • 支持C类型
  • 对解析字体的基本支持
  • 时间管理
  • 系统调用
  • 基本进程管理
  • 支持stdin、stdout和stderr
  • 在用户空间运行进程的基本支持

进行中的特性

  • 为LibertyOS构建的基本文件系统
  • 整个内核的完整文档
  • 对FAT文件系统的完全读写支持
  • 基本网络功能
  • 支持计算机鼠标
  • 基本shell

计划中的特性

  • 支持基于ARM的目标
  • 支持glibc/musl(或,可能,重写它们的一些部分)
  • 支持FAT、FAT32、EXFAT文件系统
  • 支持ext2、ext3、ext4文件系统
  • 支持NTFS文件系统
  • 主机名
  • 能够在操作系统中更新内核
  • 支持非英语字符
  • 完全支持Unicode
  • 基本定制

当前预期行为

  • 内核初始化LibertyOS的关键部分
  • 内核显示关于设置过程的消息
  • 内核遇到页面错误。:(

依赖关系

~13MB
~213K SLoC