Redox本月更新 - 2026年5月 - Redox - 你的下一代操作系统
摘要
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
Redox OS 实现了 EEVDF 调度器,替换了 DWRR,显著提升了公平性、上下文切换时间和吞吐量。
DioxusLabs/dioxus
Dioxus 是一个 Rust 框架,用于构建跨平台应用(网页、桌面、移动端),具有高效的状态管理和热重载功能。
ReactOS
ReactOS庆祝其作为开源、兼容Windows的操作系统30周年,近期更新包括测试套件改进、WDDM调查以及招募新开发者。
KDE Linux 2026年8月动态
在2026年8月,KDE Linux 收到了多项更新,包括通过 Btrfs 快照改进数据安全性、默认支持 CJKV 输入、QA 系统增强、安全修复和文档更新。
KDE Linux 本月动态:2026年7月
2026年7月KDE Linux更新月度摘要,涵盖新的QA/集成测试、内核加固、性能调整,以及通过Flatpak下载扩展Java和DOS应用的软件兼容性。