Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Redox OS でのネームスペース管理と chroot の実現

Avatar for isan isan
March 20, 2026

Redox OS でのネームスペース管理と chroot の実現

Avatar for isan

isan

March 20, 2026
Tweet

Other Decks in Programming

Transcript

  1. Redox OS でのネームスペース管理と chroot の実現 自己紹介 Ibuki OMATSU @Isan_info 産業技術高等専門学校

    Redox OS での主なプロジェクト: UNIX ドメインソケットの実装, 一括ファイルディスクリプタ送信 発表: FOSDEM 2026 “Capability Based Security in Redox OS” Ibuki OMATSU, 2026/03/20 2 / 10
  2. Redox OS でのネームスペース管理と chroot の実現 Redox OS ™︎ とは •

    マイクロカーネル • Rust 製 • UNIX ライク デスクトップやネットワークスタッ クを提供 Redox OS 上で Redox OS の開 発・コミットも可能 Ibuki OMATSU, 2026/03/20 3 / 10
  3. Redox OS でのネームスペース管理と chroot の実現 Redox のアーキテクチャ • カーネルは 3

    万行以下 ‣ 依存パッケージを含め 10 万行以下 • サービスやドライバがユーザ空間で動作 • ファイル操作は “Schemes” が処理 ‣ サービスやドライバが提供 ‣ RedoxFS: file ‣ プロセスマネージャ: proc • “Schemes” の可視性はネームスペースが 管理 Ibuki OMATSU, 2026/03/20 4 / 10
  4. Redox OS でのネームスペース管理と chroot の実現 relibc: Rust 製標準 C ライブラリ

    • 複数の OS をサポート ‣ Linux: relibc -> 生のシステムコール ‣ Redox: relibc -> redox-rt • redox-rt ( Redox ランタイムサービス) ‣ POSIX API から Redox 固有の操作への変換層 – fork/exec ‣ Redox 内部用 FD の管理 – プロセス/スレッド、CWD FD Ibuki OMATSU, 2026/03/20 5 / 10
  5. Redox OS でのネームスペース管理と chroot の実現 ネームスペース管理移行前のファイルアクセス 1. アプリケーションが open("/home/user/ some_file")

    を呼ぶ 2. redox-rt がパスを /scheme/file/home/ user/some_file に変換し open する 3. 4. 5. Ibuki OMATSU, 2026/03/20 6 / 10
  6. Redox OS でのネームスペース管理と chroot の実現 ネームスペース管理移行前のファイルアクセス 1. アプリケーションが open("/home/user/ some_file")

    を呼ぶ 2. redox-rt がパスを /scheme/file/home/ user/some_file に変換し open する 3. カーネルがネームスペースに file scheme が存在するか確認 4. 5. Ibuki OMATSU, 2026/03/20 6 / 10
  7. Redox OS でのネームスペース管理と chroot の実現 ネームスペース管理移行前のファイルアクセス 1. アプリケーションが open("/home/user/ some_file")

    を呼ぶ 2. redox-rt がパスを /scheme/file/home/ user/some_file に変換し open する 3. カーネルがネームスペースに file scheme が存在するか確認 4. 存在すれば、カーネルがリクエストを file scheme に送信 5. Ibuki OMATSU, 2026/03/20 6 / 10
  8. Redox OS でのネームスペース管理と chroot の実現 ネームスペース管理移行前のファイルアクセス 1. アプリケーションが open("/home/user/ some_file")

    を呼ぶ 2. redox-rt がパスを /scheme/file/home/ user/some_file に変換し open する 3. カーネルがネームスペースに file scheme が存在するか確認 4. 存在すれば、カーネルがリクエストを file scheme に送信 5. file scheme がリクエストを処理 Ibuki OMATSU, 2026/03/20 6 / 10
  9. Redox OS でのネームスペース管理と chroot の実現 移行の鍵: openat(dir_fd, "path/to/file") • openat

    は dir_fd からの相対パスでファイルを開く • 通常はただの便利な関数 • アプリケーションが openat のみを利用し、dir_fd に制限がかかっていれば、 dir_fd がサンドボックスとして機能 (例: O_RESOLVE_BENEATH) Ibuki OMATSU, 2026/03/20 7 / 10
  10. Redox OS でのネームスペース管理と chroot の実現 移行の鍵: openat(dir_fd, "path/to/file") • openat

    は dir_fd からの相対パスでファイルを開く • 通常はただの便利な関数 • アプリケーションが openat のみを利用し、dir_fd に制限がかかっていれば、 dir_fd がサンドボックスとして機能 (例: O_RESOLVE_BENEATH) -> ネームスペース管理に利用できる Ibuki OMATSU, 2026/03/20 7 / 10
  11. Redox OS でのネームスペース管理と chroot の実現 ユーザ空間ネームスペースマネージャ 1. アプリケーションが open("/home/user/ some_file")

    を呼ぶ 2. redox-rt がパスを /scheme/file/home/ user/some_file に変換し openat(namespace_fd, path) を呼ぶ 3. ネームスペースマネージャがリクエスト を仲介する • アプリケーションは namespace_fd を介し てのみ絶対パスアクセスが可能 Ibuki OMATSU, 2026/03/20 8 / 10
  12. Redox OS でのネームスペース管理と chroot の実現 Redox OS での chroot の実現

    • chroot: 絶対パスが解決されるルートディレクトリの変更 • Linux: プロセスに対して 1 つのファイルシステムルート • Redox: 複数のルート - それぞれの scheme が別々のルートを持つ ‣ ネームスペースマネージャは scheme 名と “scheme ルート”のマップを持っている ‣ 実は “scheme ルート” はスキームの仮想ルートでもよい • • Ibuki OMATSU, 2026/03/20 9 / 10
  13. Redox OS でのネームスペース管理と chroot の実現 Redox OS での chroot の実現

    • chroot: 絶対パスが解決されるルートディレクトリの変更 • Linux: プロセスに対して 1 つのファイルシステムルート • Redox: 複数のルート - それぞれの scheme が別々のルートを持つ ‣ ネームスペースマネージャは scheme 名と “scheme ルート”のマップを持っている ‣ 実は “scheme ルート” はスキームの仮想ルートでもよい • RedoxFS の chroot ‣ 自身のネームスペースに file scheme ルートとして /scheme/file/jail のようなディ レクトリを登録する ‣ /scheme/file/.. へのアクセスは自動的に /scheme/file/jail/.. へと制限される • Ibuki OMATSU, 2026/03/20 9 / 10
  14. Redox OS でのネームスペース管理と chroot の実現 Redox OS での chroot の実現

    • chroot: 絶対パスが解決されるルートディレクトリの変更 • Linux: プロセスに対して 1 つのファイルシステムルート • Redox: 複数のルート - それぞれの scheme が別々のルートを持つ ‣ ネームスペースマネージャは scheme 名と “scheme ルート”のマップを持っている ‣ 実は “scheme ルート” はスキームの仮想ルートでもよい • RedoxFS の chroot ‣ 自身のネームスペースに file scheme ルートとして /scheme/file/jail のようなディ レクトリを登録する ‣ /scheme/file/.. へのアクセスは自動的に /scheme/file/jail/.. へと制限される • ネットワークの chroot(分離) にも利用できる? Ibuki OMATSU, 2026/03/20 9 / 10
  15. Redox OS でのネームスペース管理と chroot の実現 まとめ • openat を利用してネームスペース管理をユーザ空間へ移行した •

    スキームがカーネルで匿名で作成され、自らネームスペースへ登録するように • カーネルがリクエストを振り分けるだけで良くなり、パスの解析が不必要に • ネームスペースを利用しスキームの chroot やネットワーク分離も実現可能に 関連リポジトリ: https://gitlab.redox-os.org/redox-os/relibc, https://gitlab.redox-os.org/redox-os/base 発表: “Capability Based Security in Redox,” https://fosdem.org/2026/schedule/event/KSK9RB-capability-based-redox-os/ 関連記事: “Capability-based Security for Redox: Namespace and CWD as capabilities,” https://www.redox-os.org/news/ nlnet-cap-nsmgr-cwd/ Ibuki OMATSU, 2026/03/20 10 / 10