Redox本月更新 - 2026年5月 - Redox - 你的下一代操作系统

Lobsters Hottest 新闻

摘要

Redox OS,一个用Rust编写的类Unix微内核操作系统,分享了其2026年5月的更新,包括宣布夏季代码项目、实现EEVDF调度器,以及I/O事件和文件系统inode缓存的显著性能改进。

<p><a href="https://lobste.rs/s/6ixkjy/this_month_redox_may_2026_redox_your_next">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/06/08 21:22

# Redox 本月动态 - 2026年5月 - Redox 来源:https://www.redox-os.org/news/this-month-260531/ ##### 由 Ribbon 和 Ron Williams 发布于 2026年5月31日,星期日 Redox OS 是一个用 Rust 编写的、完整的类 Unix 通用微内核操作系统。五月对 Redox 来说是非常激动人心的一个月!以下是所有最新消息。 ## 捐赠给 Redox 如果您想支持 Redox,请考虑捐赠或购买一些周边商品! - 捐赠 (https://www.redox-os.org/donate/) - Patreon (https://www.patreon.com/redox_os) - 周边商品 (https://redox-os.creator-spring.com/) ## Redox 夏季代码活动 我们正式宣布 2026 年的两个 Redox 夏季代码 (RSoC) 项目,旨在支持学生开发者。 1. Akshit Gaur 正在为 Redox 实现一个新的调度器。他已经实现了赤字加权轮询 (DWRR) (https://en.wikipedia.org/wiki/Deficit_round_robin) 算法,该算法已经在 Redox 中使用了大约一个月。他关于实现最早可行的虚拟截止时间优先 (EEVDF) (https://en.wikipedia.org/wiki/Earliest_eligible_virtual_deadline_first_scheduling) 的工作刚刚被合并,他即将开始使用新算法优化系统性能。更多细节见下文。 2. Landon Propes 将改进系统的兼容性、正确性和性能等多个方面,包括改进伪终端驱动程序、数学库 (libm)、对 "rlimits" 的部分支持,以及对我们 C 标准库 relibc 的其他改进。Landon 已经为 relibc 贡献了几个月,并已显著提高了我们对 POSIX 标准 (https://pubs.opengroup.org/onlinepubs/9799919799/) 的符合度。 今年的每个夏季代码项目都为我们的学生提供超过 5000 美元的资助。除了这些项目,Redox 还持续为另外 3 名非学生贡献者提供少量资助。我们目前的支出已经远远超过了每月的捐赠收入,我们正在依靠往年收到的捐赠来支持 RSoC。如果您有能力,我们将非常感谢您通过 Donorbox (https://donorbox.org/redox-os)、Patreon (https://www.patreon.com/redox_os)、捐赠页面 (https://www.redox-os.org/donate/) 上提供的比特币或以太坊钱包进行每月或一次性捐赠。 ## Redox 上的 EEVDF 调度器! Akshit Gaur 成功实现了 EEVDF 调度器,以接替他之前实现的 DWRR 调度器。与简单的 DWRR 相比,它具有更动态的计算能力,这应能确保任务获得足够的 CPU 时间,即使执行大量系统调用或进程优先级较低时也是如此。新调度器比以前更稳定,并且在 Pixelcannon 中获得了约 200 FPS 的提升。请注意,EEVDF 的实现尚未经过优化阶段。现在系统应该更加稳定和公平了! 阅读 EEVDF 进展报告 (https://www.redox-os.org/news/eevdf/) 以查看基准测试对比。 ## I/O 事件等待的巨大性能改进 Wildan Mubarok 将非 KVM QEMU 基准测试中 `poll` 和 `epoll` 的性能提升了 4 倍!两个函数的超时精度也得到了极大改进。在 QEMU KVM 和真实硬件上看到的改进可能要高得多。这极大地提高了 X11 性能,其他应用程序需要测试以了解其他可能的增益。 ## RedoxFS Inode 的巨大性能改进 Wildan Mubarok 实现了 inode 缓存,这将非 KVM QEMU 中简单 GCC 编译的编译时间从大约 2.411 秒降低到了 670 毫秒!QEMU KVM 和真实硬件的改进可能要高得多。 冷缓存: ``` user:~$ time gcc test.c -o t CHECK: /usr/libexec/gcc/x86_64-unknown-redox/13.2.0/cc1 SEARCH: 3ms READ: 1178ms DSO: 4ms LOAD: 1ms ... cc1: fatal error: test.c: No such file or directory compilation terminated. real 2.411483288s ``` 热缓存: ``` user:~$ time gcc test.c -o t ... CHECK: /usr/libexec/gcc/x86_64-unknown-redox/13.2.0/cc1 SEARCH: 2ms READ: 5ms DSO: 2ms LOAD: 1ms ... cc1: fatal error: test.c: No such file or directory compilation terminated. real 0.670010746s ``` ## 预构建包的增量编译 长期以来,我们一直有个问题:当触发包更新任务时,包服务器会不必要地执行完整的包清理,从而无法进行增量编译。这阻碍了我们提供更大的包。我们终于修复了这个问题,现在包更新只需几分钟而不是几小时! ## Redox 上的 XFCE! Wildan Mubarok 经过一番努力成功移植了 XFCE 桌面环境,以获得更好的 X11 体验。目前这个移植比 MATE 更稳定,因为 Caja 存在崩溃问题。需要修复许多 bug 才能使其可用。 ## Redox 上的 COSMIC Monitor! Jeremy Soller 移植了最新的 COSMIC Monitor 应用程序,为 Redox 带来了第一个图形化系统监视器! ## Rust 编译器更新 Jeremy Soller 成功将我们的 Rust fork 版本更新到了 1.98 nightly (2026-05-24),修复了需要更新 Rust 版本的 crate 问题。 ## 包 Web 文件浏览器 Wildan Mubarok 在包 Web UI 中实现了文件浏览器和符号链接可视化,您可以通过点击此链接 (https://static.redox-os.org/web/x86_64-unknown-redox/files.html) 使用。 ## 终端字体自定义 Migue Magic 在 Redox 终端中实现了字体自定义!(不是 COSMIC Terminal) ## Cookbook 配方规则和回滚 Wildan Mubarok 实现了“配方规则”机制,无需修改文件系统配置即可快速更改配方类型,简化了开发工作流程。它有以下命令: - `make lc.<配方名称>`:为一个配方启用本地配方源码模式,以防止未提交的源码更改和活动分支更改丢失。 - `make nc.<配方名称>`:忽略一个配方的安装并清理配方二进制文件。 - `make bc.<配方名称>`:启用二进制模式(下载预构建包)以禁用编译并清理配方二进制文件。 - `make sc.<配方名称>`:重新启用源码编译并清理配方二进制文件。 - `make cc.<配方名称>`:恢复默认配方规则(源码)并清理配方。 他还实现了配方提交回滚,以通过更小的 bug 复现案例改进调试:(在此之前运行 `make unfetch prefix_clean PREFIX_BINARY=0` 命令) - `make repo-rollback.<提交>`:回滚到指定的构建系统提交。 - `make repo-lock`:锁定当前构建系统提交并禁用配方的 `fetch` 步骤。 - `make repo-unlock`:解锁当前构建系统提交并启用配方的 `fetch` 步骤。 - `make distclean all`:清理所有配方源码、构建系统二进制文件,并使用最新的配方提交重建 Redox 镜像。 ## 启动改进 - `(boot)` Wildan Mubarok 修复了 ARM64 上 PCI 驱动生成导致启动卡住的问题。 ## 内核改进 - `(kernel)` 4lDO2 修复并简化了性能分析。 - `(kernel)` Wildan Mubarok 改进了 `futex` 性能。 - `(kernel)` Wildan Mubarok 改进了 I/O 事件调试。 - `(kernel)` Wildan Mubarok 修复了 `epoll` 存在过时数据导致 X11 崩溃的 bug。 - `(kernel)` Wildan Mubarok 对 `EBADF` 竞争条件进行了潜在修复。 - `(kernel)` Wildan Mubarok 简化了上下文切换错误处理。 - `(kernel)` Wildan Mubarok 进行了一些代码清理。 - `(kernel)` Wildan Mubarok 修复了一些代码警告。 - `(kernel)` Aadarsh 实现了一个改进文件表修改灵活性的接口。 - `(kernel)` Speedy_Lex 添加了 ACPI RSDP 验证。 - `(kernel)` Speedy_Lex 修复了一些代码警告。 ## 驱动改进 - `(driver)` bjorn3 在 Intel 显卡驱动中实现了页面翻转。 - `(driver)` bjorn3 在 `pcid` 中实现了非特权使用的 PCI BAR 映射,以提高安全性。 - `(driver)` bjorn3 进行了一些代码清理。 - `(driver)` Alexander Usenko 和 bjorn3 在 DRM API 中实现了平面(合成卸载)。 - `(driver)` Antoine Reversat 简化了 xHCI 代码。 ## 系统改进 - `(sys)` Jeremy Soller 修复了 `audiod` 中的死锁。 - `(sys)` Wildan Mubarok 移植了 uutils procps 实现 (https://github.com/uutils/procps)(`free`、`top` 和 `w` 工具除外,工作中)并替换了基本的 Redox `watch` 实现。 - `(sys)` Wildan Mubarok 实现了 I/O 事件超时。 - `(sys)` Wildan Mubarok 通过移除动态内存分配改进了 `nproc` 性能。 - `(sys)` Wildan Mubarok 将更多配方二进制文件、配置和数据移到了 `/usr` 目录。 - `(sys)` Frank Li 修复了 `df` 工具的一个回归问题。 - `(sys)` Frank Li 修复了 `uutils` 的 UTF-8 区域设置处理(缺少默认区域设置(回退为 UTF-8)和文件名转义),例如,允许正确显示尖音字符。 - `(sys)` Akshit Gaur 启用了来自 `uutils` 的 `nice` 工具并移植了 `renice`。 - `(sys)` Ibuki Omatsu 为 `call` 和 `std_fs_call` 添加了多个 `fds` 变体。 - `(sys)` bjorn3 修复了一些代码警告。 ## Relibc 改进 - `(libc)` Wildan Mubarok 实现了 `static_assert`、`pselect` 和 `qsort_r` 函数。 - `(libc)` Wildan Mubarok 在 `strftime` 函数中实现了 `%x` 支持。 - `(libc)` Wildan Mubarok 提高了 POSIX 一致性。 - `(libc)` Wildan Mubarok 在测试中启用了 SMP。 - `(libc)` Wildan Mubarok 修复了 `sys/resource.h`、`sys/ipc.h`、`sys/shm.h`、`setjmp.h` 和 `elf.h` 头文件。 - `(libc)` Wildan Mubarok 修复了 `sigjmp_buf` 函数并添加了测试。 - `(libc)` Wildan Mubarok 修复了 `pthread_key_delete` 函数中的 `EINVAL`。 - `(libc)` Wildan Mubarok 修复了测试中可能的 POSIX 信号竞争条件。 - `(libc)` Wildan Mubarok 修复了 `utimes` 函数中的未定义行为。 - `(libc)` Wildan Mubarok 修复了 Linux 上的 `libm`。 - `(libc)` Wildan Mubarok 修复了 `alarm` 测试。 - `(libc)` Wildan Mubarok 为 `nice`、`pselect` 和 `utimes` 函数添加了测试。 - `(libc)` Wildan Mubarok 减少了代码重复。 - `(libc)` Wildan Mubarok 简化了测试数据。 - `(libc)` Wildan Mubarok 记录了所有 `pthread` 函数。 - `(libc)` Landon Propes 和 Wildan Mubarok 实现了 `utimensat` 函数。 - `(libc)` Landon Propes 实现了 `threads.h` 头文件。 - `(libc)` Landon Propes 将更多函数迁移到使用它们的 `*at` 变体。 - `(libc)` Landon Propes 减少了代码重复。 - `(libc)` Landon Propes 修复了 `openat2` 函数中的 `EINVAL`。 - `(libc)` Landon Propes 修复了一些代码警告。 - `(libc)` sourceturner 修复了 Linux 上的 POSIX 定时器并添加了测试。 - `(libc)` David Finder 修复了 `alarm` 函数。 - `(libc)` Mustafa Oz 实现了 `fmtmsg` 函数。 - `(libc)` plimkilde 减少了代码重复。 - `(libc)` auronandace 持续改进 POSIX 符合度。 - `(libc)` auronandace 拆分了 `sys/types.h` 定义以减少命名空间污染。 - `(libc)` auronandace 通过在 `cbindgen` 配置文件中包含定义,消除了更多 C 头文件片段。 - `(libc)` auronandace 通过 cbindgen 将许多用 C 编写的定义移到了 Rust。 - `(libc)` auronandace 为许多函数和定义添加了文档。 - `(libc)` auronandace 清理了许多头文件和代码。 - `(libc)` auronandace 修复了一些代码警告。 - `(libc)` Speedy_Lex 修复了许多代码警告。 - `(libc)` Vera Delfavero 对 README 进行了一些小的语法修正。 ## 网络改进 - `(net)` Frank Li 修复了 `ifconfig` 工具在无参数执行时的设备列表问题。 - `(net)` Frank Li 修复了当监听器在后台运行时 `nc -l` 退出的 bug。 ## 终端改进 - `(term)` Migue Magic 从 `initfs` 中移除了 `fbcond` 以允许 Redox 终端字体自定义。 - `(term)` Migue Magic 对终端绘制性能进行了小幅改进。 ## 安全改进 - `(safe)` Ibuki Omatsu 为 `ramfs` 实现了 `relpathat` 函数。 ## 桌面改进 - `(desk)` Wildan Mubarok 修复了在 orbclient 中使用 `no_std` 功能的程序。 - `(desk)` Ribbon 配置了 `c`、`cpp`、`css`、`java`、`js` 和 `py` 文件在 COSMIC Editor 中打开。 - `(desk)` Ribbon 配置了 `webp` 和 `gif` 文件在 Orbital 图像查看器中打开。 - `(desk)` Ribbon 配置了 `epub` 和 `cbz` 文件在 COSMIC Reader 中打开。 ## 应用程序 - `(app)` Jeremy Soller 在 sdl1-ttf、sdl1-image 和 sdl1-mixer 中启用了动态链接。 - `(app)` Jeremy Soller 将 GNU AWK 添加到 x86-64 `demo` Redox 变体。 - `(app)` bjorn3 完成了 `libdrm` 端口。 - `(app)` Wildan Mubarok 移植了 CPython 3.15 和 GObject Introspection。 - `(app)` Wildan Mubarok 通过从 POSIX Alarm 切换到 Threads 修复了 cURL,以提高安全性并绕过某个 bug。 - `(app)` Wildan Mubarok 在 Timidity、patch、LuaRocks、SDL 1.2、sdl-gfx、Sopwith、vttest 中启用了动态链接。 - `(app)` Wildan Mubarok 修复了 CMake、GNU M4 和 `groff` 的编译问题。 - `(app)` Wildan Mubarok 改进了许多配方以存储在 `/usr` 目录中。 - `(app)` Ribbon 创建了 `autotools` 元包以加快 GNU Autotools 的安装。 - `(app)` Ribbon 将 `uutils-procps` 添加到 `minimal` Redox 变体。 - `(app)` Ribbon 将 `file` 添加到 `desktop` Redox 变体。 - `(app)` Ribbon 将 `wget` 和 COSMIC Reader 添加到 x86-64 `demo` Redox 变体。 ## 构建系统改进 - `(build)` Wildan Mubarok 在 Cookbook TUI 中实现了检查模式,出错时可以通过按“检查”按钮滚动日志,以便快速调查并保留日志格式。 - `(build)` Wildan Mubarok 实现了 `linux-relibc` 目标,以便在 Linux 上更好地测试 relibc。 - `(build)` Wildan Mubarok 实现了 `python` Cookbook 模板以简化 Python 打包。 - `(build)` Wildan Mubarok 更新了 `REPO_BINARY` 和 `binary` 配方类型,如果预构建包不可用,则回退到 `source`。 - `(build)` Wildan Mubarok 更新了 `make qemu` 命令以自动卸载 Redox 文件系统,防止意外数据损坏。 - `(build)` Wildan Mubarok 更新了 `make prefix_clean` 命令以清理所有 Rust 和 GCC 依赖项。 - `(build)` Wildan Mubarok 修复了当配方包部分下载时,`REPO_BINARY` 和 `binary` 配方类型的提取和推送问题。 - `(build)` Wildan Mubarok 修复了元包推送。 - `(build)` Wildan Mubarok 修复了如果未先执行 `make prefix`,`make fetch` 命令无法工作的问题。 - `(build)` Wildan Mubarok 修复了在某些情况下 `make push` 忽略配方依赖项的 bug,当一个被忽略的配方使用了相同的依赖项时。 - `(build)` Wildan Mubarok 修复了配方推送后 `pkg install` 和 `pkg update` 无法工作的问题。 - `(build)` Wildan Mubarok 修复了可能的 Cookbook 启动速度变慢的问题。 - `(build)` Wildan Mubarok 修复了旧版 Debian 和 Ubuntu 中 QEMU RISC-V 模拟器的安装问题。 - `(build)` Wildan Mubarok 修复了在 Fedora 中使用 `apt` 包管理器时的引导脚本问题。 - `(build)` Frank Li 在文件系统配置中实现了文件追加功能,以防止在创建新的 Redox 镜像时覆盖已声明的文件(`[[files]]` 部分)。 - `(build)` Frank Li 在 `/etc/os-release` 中添加了构建系统提交信息以改进调试。 - `(build)` Ribbon 修复并简化了 `auto-test.toml` 文件系统配置。 - `(build)` Ribbon 修复了 Arch Linux 中 QEMU GUI 不工作的问题。 ## 文档改进 - `(doc)` Hamish McIntyre-Bhatty 添加了 Dell Latitude D600(状态:无法启动)、Lenovo Thinkbook 14 Gen 2 ARE(AMD Ryzen Edition)(状态:可启动)、Apple Mac Mini (2012)(状态:无法启动)、VIA C3(无品牌)(状态:无法启动)和自定义 ASRock X570 Phantom Gaming 4 (Ryzen 3600)(状态:无法启动)的兼容性报告。 - `(doc)` Hamish McIntyre-Bhatty 修复了 `HARDWARE.md` 中的一些语法问题。 - `(doc)` Migue Magic 添加了 Dell XPS L502X 笔记本的兼容性报告(状态:可启动)。 - `(doc)` Ribbon 记录了用于滚动启动日志的键盘按键(Shift+Up 和 Shift+Down),以帮助调试。 - `(doc)` Ribbon 记录了 `make rebuild-push`(更新现有 QEMU 映像中的系统和应用程序以保留数据)和 `make fetch push`(如果预构建包可用,则更新并安装它们)命令。

相似文章

RSoC 2026:Redox OS 中的 EEVDF

Lobsters Hottest

Redox OS 实现了 EEVDF 调度器,替换了 DWRR,显著提升了公平性、上下文切换时间和吞吐量。

DioxusLabs/dioxus

GitHub Trending (daily)

Dioxus 是一个 Rust 框架,用于构建跨平台应用(网页、桌面、移动端),具有高效的状态管理和热重载功能。

ReactOS

Hacker News Top

ReactOS庆祝其作为开源、兼容Windows的操作系统30周年,近期更新包括测试套件改进、WDDM调查以及招募新开发者。

KDE Linux 2026年8月动态

Lobsters Hottest

在2026年8月,KDE Linux 收到了多项更新,包括通过 Btrfs 快照改进数据安全性、默认支持 CJKV 输入、QA 系统增强、安全修复和文档更新。

KDE Linux 本月动态:2026年7月

Lobsters Hottest

2026年7月KDE Linux更新月度摘要,涵盖新的QA/集成测试、内核加固、性能调整,以及通过Flatpak下载扩展Java和DOS应用的软件兼容性。