Redox 今月の動向 - 2026年8月
Redox OS の 8 月アップデート。ARM64 マルチコア対応が入り、ユーザー空間のリングバッファ通信で NVMe などの I/O 性能が 14〜15 倍に向上した。
日本語
コピー

作者:Ribbon と Ron Williams
2026年8月31日(月)公開
Redox OS は Rust で書かれた、Unix ライクな汎用マイクロカーネル OS です。Redox にとって8月はとても賑やかな月でした!最新の動きをまとめてお届けします。レポートが遅れてすみません——開発の忙しさ、休暇、カンファレンス参加、本業、その他もろもろが重なってしまいました。
Redox への寄付
Redox を支援したい方は、寄付やグッズの購入を検討してみてください。
- 寄付
- Patreon
- グッズは Teespring から Amaze Commerce に移行しました:https://app.amazecommerce.com/shop/redox-os
さらなる起動修正
Wildan Mubarok が UEFI 互換性を改善し、MSI Modern 14 C7M ノート PC が起動するようになりました!
ARM64 のマルチコア対応
lbecher が AArch64/ARM64 のマルチコア対応を実装し、いくつか修正も行いました。どれだけ性能が上がるかは、さらにテストを重ねないと確定できません。
リングバッファ通信による並列度の向上
数か月にわたる作業の末、Ibuki Omatsu と Anhad Singh がユーザー空間ベースのリングバッファ通信 API(Redox Rings)を実装しました。Linux の io_uring システムコール API に相当するもので、対応ドライバ上での性能向上を狙ったものです。4lDO2 が指導し、Wildan Mubarok がバグ修正を手伝いました。数年前に試したカーネルベースのリングバッファ通信 API より、出来が良くなっています。この作業により、NVMe ドライバ、RedoxFS、RAMFS の I/O 性能が大幅に向上しました。以下のベンチマーク(RedoxFS ファイルシステムを経由しない)では、I/O 性能が最大14〜15倍になっています!!
-
redox_syscall(同期システムコールで NVMe の読み書き性能を測定)とredox_ring(リングバッファで NVMe の読み書き性能を測定)のベンチマーク比較 -
リングバッファを使ったメモリファイルシステム(ramfs)のベンチマーク

ネイティブコンパイル性能が大幅改善、OOM も修正
Wildan Mubarok は数か月かけて GCC のコンパイル性能がじわじわ悪化する問題を調査し、最終的にカーネルのメモリリークを突き止めて修正しました。このリークのせいで、GCC の os-test テストスイートのコンパイル時間(QEMU 上)は2時間から10時間へと伸び続け、メモリ不足(OOM)エラーも起きていました。修正後、コンパイル時間は10時間から約30分に短縮されています。
NUMA 対応
Aadarsh(別名 EuclidDivisionLemma)が NUMA ベースのメモリ管理の初期的な対応を実装しました。現在は QEMU で NUMA の挙動をテストしているため、実機でのテストをぜひお待ちしています。
あわせて、ローカルノード割り当て(データ局所性)をデフォルトで実装し、NUMA 割り当てポリシーを変更するための libredox API も用意しました。
プロセス優先度対応とスケジューラ改善——RSoC プロジェクト総括
Akshit Gaur がプロセス優先度対応を実装し、システム全体の優先度を調整して性能を引き上げました。 さらに最後の EEVDF 記事を執筆し、最適化を経た完全な解説をまとめています。Akshit の素晴らしい仕事に感謝します!
QEMU が Redox 上で動く!
Ribbon と Wildan Mubarok が、QEMU が Redox 上で動くことを確認・テストしました。Ribbon は QEMU のターミナルモードで Redox のサーバー版を、Wildan は GTK フロントエンドを含むデスクトップ版をテストしています。 Redox はまだ KVM のような仮想マシン高速化に対応していないため、性能はかなり遅くなる可能性があります。
- QEMU のターミナルモードで動く Redox サーバー版、上は Redox デスクトップ

- QEMU のターミナルと GTK GUI 上で動く Redox サーバー版

- QEMU の GTK GUI 上で動く Redox デスクトップ版

Linux からのデュアルブートインストール!
Wildan Mubarok が Redox インストーラの Linux 対応を改善し、Redox をデュアルブートでインストールできるようにしました。使い方と新しい GUI インストーラのオプションについては、こちらのページをご覧ください。
- トリプルブートで動く Redox

カーネルバイナリサイズの分析
4lDO2 がカーネルバイナリのサイズ分析を実装した。どの部分を削減できるかを測るためのもので、メモリ使用量の削減にもつながる。
名前空間とケイパビリティベースセキュリティを用いたファイルアクセス設計
Ibuki Omatsu が、ケイパビリティベースのセキュリティモデルにおいて openat 関数が名前空間マネージャを通じてパスを解決する仕組みを図にまとめた。詳細はこちらのセクションを参照。
relibc のコントリビューション方針と目標の改善
4lDO2 が relibc(POSIX/C 標準ライブラリ)のセキュリティ方針と目標を文書化した。未定義動作や論理エラーを持ち込む確率を下げるのが狙いだ。要点は、unsafe コードを relibc の「リーフ関数」に限定し、監督とレビューを容易にするとともに、unsafe コードが想定外の場所に現れるのを減らすことにある。内部で Rust 寄りのエラー処理を採用し、POSIX のエラーより豊富な情報を提供する(特定の種類のバグの調査に役立つ)ことも含まれる。
カーネルの改善
- (カーネル)4lDO2 が IPC のオーバーヘッドを 5% 削減
- (カーネル)4lDO2 が未到達の DTB コードを削除し、バイナリサイズを 2.2% 縮小(x86-64 イメージなど)
- (カーネル)4lDO2 が
redox_syscallライブラリのコードをkernelリポジトリに統合し、変更しやすくした - (カーネル)Akshit Gaur が EEVDF スケジューラの work stealing をさらに改善・修正し、Wildan Mubarok もいくつか修正したことで性能が向上
- (カーネル)Aadarsh(別名 EuclidDivisionLemma)がスレッドロックを減らしてメモリ解放性能を改善
- (カーネル)Aadarsh(別名 EuclidDivisionLemma)が NUMA コードの panic を修正
- (カーネル)Wildan Mubarok がすべての scheme パス処理をユーザ空間に移した
- (カーネル)Wildan Mubarok が、プロセスを kill するとゾンビプロセスが生じうる潜在バグを修正
- (カーネル)Wildan Mubarok が
FUTEX_WAIT64システムコールの panic を修正
ドライバの改善
- (ドライバ)MJ Pooladkhay が PCI マルチベクタ MSI-X を実装。より多くのドライバ性能機能を支える
- (ドライバ)MJ Pooladkhay が VirtIO デバイスの完了イベントが失われる問題を修正
- (ドライバ)Wildan Mubarok が Clippy の指摘した
pcidのバグを修正 - (ドライバ)bjorn3 がコードの重複排除と整理を行った
システムの改善
- (sys) Ibuki Omatsu が scheme のマルチスレッド対応を実装
- (sys) Wildan Mubarok が rldd を我々の
lddツール実装として移植 - (sys) Wildan Mubarok が scheme パスの親収集の性能を改善
- (sys) Wildan Mubarok がファイルロックのオフバイワンをいくつか修正。SQLite と
libsoupの両方に効く - (sys) Wildan Mubarok がディスプレイのない環境での
inputdの非致命的 panic を除去 - (sys) bjorn3 が潜在的な
inputdのデッドロックを修正 - (sys) bjorn3 がコードの重複排除を行った
Relibc の改善
- (libc) 4lDO2 が安全でない socket と
getaddrinfo関数のコードの大部分をリーフ関数に変更。処理を集約することで可読性が大きく上がり、バグが減る - (libc) 4lDO2 が
RELIBC_COMMIT_HASH環境変数を実装。relibcのコミットハッシュを表示し、静的オブジェクトがローカルの変更を反映して更新されたのか、すでに最新なのかを完全に確認できる - (libc) Ibuki Omatsu が
recvmsg関数の壊れたSCM_RIGHTSを修正。このバグはファイルディスクリプタの割り当てをユーザ空間に移した後に露見した - (libc) bjorn3 が
getsocknameとgetpeername関数のアドレス長計算を修正し、いくつかのmioライブラリのテストが通るようにした - (libc) Wildan Mubarok が Linux 向けに
rlct_clone関数を実装し、Linux ARM64 のpthreadテストを修正 - (libc) Wildan Mubarok が
setvbuf関数でモード付きの読み取り(行バッファリングを除く)と書き込み(借用を除く)のサポートと処理を実装 - (libc) Wildan Mubarok が
LD_DEBUG環境変数を改善。relibc共有オブジェクトのメモリ位置の範囲を表示し、動的リンク時のクラッシュデバッグを大幅に改善 - (libc) Wildan Mubarok が
open関数を直接呼び出すようにしてepollの性能を改善 - (libc) Wildan Mubarok が
stdioの初期化に const 関数を使い、アプリとライブラリの起動時間を短縮 - (libc) Wildan Mubarok が
timer_tの unsafe Rust コードを削減 - (libc) Wildan Mubarok が Unix socket のテストを追加
- (libc) Wildan Mubarok が ARM64 の TLS ロードオフセットを修正し、パッケージマネージャ上の
tokioライブラリの panic を修正 - (libc) Wildan Mubarok が Linux ARM64 の 64KiB ページでの ELF ロードを修正
- (libc) Wildan Mubarok が
clock_getres関数の挙動を修正 - (libc) Wildan Mubarok が
fstatat関数の二重クローズのバグを修正 - (libc) Wildan Mubarok が
ptsname_rの NUL オフセットを修正 - (libc) Wildan Mubarok が
pthread_kill-selfテストを修正 - (libc) Wildan Mubarok が時刻/タイマーのテストを修正
- (libc) auronandace が
tcgetsid関数を実装 - (libc) auronandace が
SYS_DUP_INTO、SYS_READ、SYS_WRITEシステムコールをSYS_CALLシステムコールに置き換え、システムコールの回数を削減 - (libc) auronandace が
asの型変換の使用をさらに減らし、コードのリファクタリング時に問題が起きないようにした - (libc) auronandace がコードを整理
- (libc) auronandace、Wildan Mubarok、Ibuki Omatsu が多くの Clippy lint を修正・強制し、CI で追跡を有効化
- (libc) Ben McCann が
tzsetに POSIX base を実装し、mktime関数に POSIX の処理を実装 - (libc) Ben McCann が
tzset関数のテストを追加 - (libc) Sunam Kang が
sendto関数にMSG_NOSIGNALを実装
ネットワークの改善
- (net) Wildan Mubarok が、DHCP で DNS を取得できない場合のエラーメッセージを改善
RedoxFS の改善
- (rfs) Wildan Mubarok が
O_SYMLINKを実装し、scheme をまたいだシンボリックリンクの走査に対応 - (rfs) Wildan Mubarok がパーティションマウントのエラー処理を改善し、エラーコードを表示するように
セキュリティの改善
- (safe) bjorn3 が
inputd上で root なしのディスプレイ起動を実装 - (safe) Ibuki Omatsu が
containサンドボックス管理ツールを新しい名前空間管理で書き直し、プロセスごとにフィルタ scheme を作成するように。この scheme が実際の名前空間ファイルディスクリプタを保持し、プログラムにファイルディスクリプタフィルタを渡すことですべてのopenat関数呼び出しを仲介する(chrootの完全な実装はまだ進行中) - (safe) Wildan Mubarok が CA 証明書を更新し、ついでに GnuTLS も修正
パッケージングの改善
- (pkg) Wildan Mubarok がパッケージ展開のプログレスバーでカウントが二重になる問題を修正
デスクトップの改善
- (desk) bjorn3 が Orbital ログインマネージャを
winitとsoftbufferライブラリに移植し、将来 Wayland をテストできるように - (desk) bjorn3 が Orbital の全画面ウィンドウでウィンドウ装飾を無効化
- (desk) bjorn3 がディスプレイサイズ変更時に全画面・最大化された Orbital ウィンドウのスケーリングが崩れる問題を修正
インストーラの改善
- (install) Wildan Mubarok が新しい GUI インストーラのオプション入力の処理を修正
- (install) Wildan Mubarok がパッケージ展開時に進捗状況を表示するように
アプリケーション
- (app) Wildan Mubarok が GNU nano を 7.2 から 9.2 に更新
- (app) Aadarsh が GNU Binutils GDB 版のビルドを修正
- (app) Wildan Mubarok が Kibi を 0.3.2 から 0.3.3 に更新
- (app) Wildan Mubarok が WebKit の TLS バグを修正
- (app) Wildan Mubarok が GTK3 移植版の EGL サポートを修正
- (app) Wildan Mubarok が Mesa3D 上の EGL で一部レンダリングがおかしくなる問題を修正
テストの改善
- (test) 4lDO2 が
acidテストスイートにベンチマーク指標を実装し、性能の劣化を検出できるように - (test) Wildan Mubarok が CI で Clippy を使い始め、有効化
- (test) Wildan Mubarok が Redox イメージの CI 検証時間を約 25 分から約 7 分に短縮
ビルドシステムの改善
- (build) Wildan Mubarok が Cookbook recipe のターゲットリスト項目の組み合わせ方を更新し、
--all-*オプションを使えるように(例:make r.base,--all-binaries) - (build) Wildan Mubarok が
COOKBOOK_TREELESS_CLONE環境変数を実装し、すべての recipe で treeless clone を有効化。ストレージを大幅に節約し、ダウンロード時間も短縮 - (build) Wildan Mubarok がスクリプトの保守コストを下げるため、スクリプトのロジックの大部分を Cookbook で再実装。Ribbon が一部のリグレッションを修正
- (build) Wildan Mubarok が
make rebuild-pushコマンド(recipe のソースやパッケージの変更を検証し、差分だけ再ビルドするか、新しい変更をダウンロードしてプッシュする)がファイルシステム設定の recipe を更新しない問題を修正。既存の Redox ファイルシステムイメージでもシステムを正しく素早く更新できるように - (build) Konstantin Shabanov が Podman と Native ビルドの Nix flake を修正
- (build) Konstantin Shabanov がコードに
cargo fixを適用 - (build) Ribbon が
show-package.shスクリプトでlsツールをtreeに置き換え、すべての recipe のパッケージディレクトリとファイルを表示できるようになり、実用性が大幅に向上
ドキュメントの改善
- (doc) Wildan Mubarok が Installing Redox ページを更新・改善し、新しい GUI インストーラのオプションに関する情報を追加
- (doc) Ribbon が Developer FAQ でなぜ POSIX/Linux のソース互換をバイナリ互換より優先するのかをより詳しく説明
- (doc) Ribbon がデバッグのヒントを記録:Linux KVM の使い方の変化がバグの挙動を変える
ウェブサイトの改善
- (web) Wildan Mubarok が LaTeX 数式のサポートを追加し、サイトのダークモードを改善して LaTeX 数式がはっきり見えるように。前回の EEVDF 記事の数式表示の問題も修正
これらの変更をテストする方法
今月の変更をテストするには、デイリービルドの server または desktop バリアントをダウンロードしてください。
GUI が必要な場合は desktop バリアントを使用してください。ターミナル風の画面を好む場合や、desktop バリアントが利用できない場合は server バリアントをお試しください。
- 仮想マシンでテストする場合は「harddrive」イメージ
- 実機でテストする場合は「livedisk」イメージ
イメージを仮想マシンや実機で使用する方法については、以下のページを参照してください。
デイリービルドのイメージは期限切れになることがあり、その場合はソースから Redox をビルドする必要があります。 手順は Redox のビルド ページに記載されています。
プログラム
アプリケーションやライブラリの変更をテストするには、目的のプログラムが以下のリストにあるか確認し、次のコマンドでインストールしてください: sudo pkg install package-name
パッケージの詳細情報が必要な場合は、Web インターフェースも用意されています。
Matrix チャットに参加する
コードを貢献したい方、フィードバックを送りたい方、あるいは単にみんなが何を話しているか聞いてみたい方は、Matrix Chat にご参加ください。