< 返回版块

Mike Tang 发表于 2026-07-30 09:07

SafaOS:两年自制 Rust 操作系统补齐 GUI、音频与 SDL2 移植链路

SafaOS 是一个从零开始、主要用 Rust 编写的业余操作系统项目。作者在最新进展里说,这一轮已经补上了 UDP 网络、GUI、基于 Intel HDA 的音频支持,以及音频服务器;同时完成了 SDL2SDL2_mixer 的移植,并把自己的 libc 重写成了 Rust 版本。

这些基础设施直接带来了更实在的软件运行结果:doomgenericquake2genericffmpeg/ffplay 以及 ccleste 都已经能在系统里跑起来。作者还提到,项目这两年里逐步收敛掉了一些“不像 Unix”的早期想法,现在整体上已经更接近 Unix-like 系统;用户态、窗口管理器和音频服务器依赖 Rust 标准库,并直接通过 safa-api 与系统交互。

仓库文档里还能看到更完整的工程形态:项目提供 safa-helper 构建/运行工具,支持 x86_64aarch64,可以产出 ISO 并在 QEMU 下运行。接下来作者打算继续补齐正式的 C 工具链、动态链接器,以及 OSMesa / LLVM / C++ / 软件 OpenGL 相关能力。

原文链接:https://github.com/SafaOS/SafaOS

Fullbleed 1.6.2:Rust HTML/CSS → PDF 引擎改用 MIT,并把主体能力补齐

Fullbleed 作者宣布 1.6.2 版本已经把这套 HTML/CSS → PDF 引擎推进到“主体能力基本完成”的状态,并同步把项目许可切换到 MIT。作者提到,自己因为健康原因已经没有精力继续沿着商业化方向推进,因此选择把项目完全放开。

从仓库说明看,这个项目强调的是一条和浏览器渲染不同的路线:它不是 headless browser,也不是托管式 web-to-print 服务,而是一个离线优先、可复现、Rust 原生的文档渲染引擎。它提供 Python 优先的 CLI 和绑定,支持确定性输出、可选 SHA-256 复现检查、PDF 1.7 默认输出、模板组合、批量并行渲染,以及较完整的 JSON 化结果结构,目标场景是事务型 / VDP 文档流水线。

这次更新的重要性不只在于“又发了一个版本”,而是它把“无浏览器依赖的现代 PDF 生产链”继续往前推了一大步。对需要自己掌控字体、资源打包、模板叠加和离线交付流程的团队来说,这条 Rust 路线已经开始具备更强的落地味道。

原文链接:https://github.com/fullbleed-engine/fullbleed-official

AtomicSlotMap:面向读多写少场景的无锁 SlotMap 扩展

AtomicSlotMap 是对 slotmap crate 的一个扩展,目标是在不要求可变借用的前提下,提供一种无锁的 SlotMap 结构。作者的动机来自插件化游戏引擎:大量资源句柄需要 FFI-safe,同时又不想把整个图形后端长期堆成一层层 Mutex<SlotMap<_>>

项目当前的设计重点是降低延迟:它允许多个读取者并发访问,同时插入操作也可以继续进行,彼此不会完全互相阻塞。作为代价,这种结构不能提供普通意义上的可变引用,也不能做完整的 bulk read / modify,因此相关能力以 lossy_* 形式存在,并明确标注潜在的 TOCTOU 风险。

作者给出的验证也比较硬:项目带有 fuzz、Loom、Miri 和常规测试;在更贴近日常系统负载的 90% 读取 + 10% 插入 多线程场景里,它相对 Mutex<SlotMap<_>> 往往更有优势,而高竞争纯插入仍然是最差使用情形。对于渲染器、资源表和偏读密集型并发句柄管理来说,这类数据结构有很强的针对性。

原文链接:https://github.com/szostid/atomic_slotmap

owl-utils:从一个 Rust 版 cat 开始,重做一套更一致的 Linux 工具箱

owl-utils 是一个带着明确产品想法的学习型项目:作者想用 Rust 和 Go 逐步做出一套更一致、更可发现、也更适合自动化的 Linux 工具箱,而不是简单复刻传统 Unix 工具的历史包袱。项目目前还处在 pre-alpha,但目标已经写得很清楚:一致性优先、默认行为友好、人类可读输出优先,同时保留结构化输出能力,并尽量保持 read-only by default。

这一轮进展聚焦在 owl cat。作者总结说,当前实现已经能处理 bounded buffering、多文件顺序输入、无参数时读取 stdin、显式 - stdin 操作数、二进制数据、Unicode、空文件、缺失末尾换行,以及“部分文件失败但整体继续执行并返回非零状态”这些边界情况;同时还补上了集成测试,以及针对 broken pipe 和命令结果结构化的初步单元测试。

这类项目的可看点,不只是“又有人用 Rust 重写工具”,而是作者有意识地把 CLI 一致性、可发现性和结构化输出当成第一原则来设计。如果后续 ls / tree / du / find / grep / ps / top 这些子工具真的沿着同一套界面原则扩展出来,它会是一条挺有意思的现代命令行产品线。

原文链接:https://github.com/VikingOwl91/owl-utils

评论区

写评论

还没有评论

1 共 0 条评论, 1 页