Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
Search
n4mlz
March 08, 2026
Programming
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
March 08, 2026
More Decks by n4mlz
See All by n4mlz
自作OSでLinuxコンテナを動かす
n4mlz
1
3.8k
NUMA環境とコンテナランタイム ― youki における Linux Memory Policy 実装
n4mlz
1
1.4k
UNTIL. LT #0x07 n4mlz
n4mlz
0
1.4k
Other Decks in Programming
See All in Programming
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
4.3k
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
270
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
200
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Foundation Models frameworkで画像分析
ryodeveloper
1
120
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.5k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
140
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
400
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
0
190
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
500
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Deep Space Network (abreviated)
tonyrice
0
230
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
330
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
Designing for humans not robots
tammielis
254
26k
Tell your own story through comics
letsgokoyo
1
990
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Building the Perfect Custom Keyboard
takai
2
810
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
970
Transcript
Cyrius ―Linux 非依存にコンテナをネイティブ実行する専用 OS ― 学習駆動コース 坂井ゼミ 14Ss 川崎晃太朗 SecHack365
2025年度成果発表会 2026/02/28
2 見どころ これだけ見ていってください はじめに ⚫ Linux コンテナをネイティブ実行できる OS を実装しました ⚫
Docker から pull してきたイメージがそのまま実行可能 ⚫ コンテナの実行機構に関して Linux よりシンプルな設計を実現 ⚫ コンテナセキュリティにおける Attack surface の最小化を図った
3 自己紹介 ⚫ 名前: 川崎晃太朗 ⚫ 学習駆動コース 坂井ゼミ ⚫ 筑波大学
情報科学類 3年 ⚫ 興味: コンテナ、クラウドネイティブ技術、自作OS、 自作コンパイラ、Web開発、インフラ、AI/ML ⚫ 好き: 車輪の再発明 はじめに
4 私はコンテナが大好きであるという話 ⚫ 過去にコンテナランタイムを 4 回自作した (言語: C, C, Go,
Rust) ⚫ コンテナランタイム関連の OSS にも貢献 ⚫ デプロイは全部コンテナでやる ⚫ 私の個人開発リポジトリにはだいたい Dockerfile や compose.yml がある 導入
5 しかし、Linux カーネルはコンテナ第一の設計ではない! ⚫ Linux: コンテナが存在しなかった時代からあり、コンテナは後付けの機構 ⚫ 小さい機能の寄せ集めで作られていて、カーネルはその機能群を提供してい るだけ ⚫
歴史的経緯によりコンテナの分離機構は煩雑であり、たびたびそのモデルの 妥当性が疑われている ⚫ 例: cgroup v1 (現在は v2 が主流になった) 導入
6 しかし、Linux カーネルはコンテナ第一の設計ではない! ⚫ Linux は元々コンテナが存在しなかった時代からあり、コンテナは後付けの機構 ⚫ 小さい機能の寄せ集めで作られていて、カーネルはその機能群を提供しているだけ ⚫ そのため歴史的経緯によりコンテナの分離機構は煩雑であり、たびたびそのモデルの
妥当性が疑われている ⚫ 例: cgroup v1 (現在は v2 が主流になった) 導入 別に Linux カーネルが悪いわけではない。 コンテナという概念が存在しなかったカーネルに、その分離機能 をそれぞれ独立に積み重ねていった結果である
7 ⚫ Linux は元々コンテナが存在しなかった時代からあり、コンテナは後付けの機構 ⚫ 小さい機能の寄せ集めで作られていて、カーネルはその機能群を提供しているだけ ⚫ そのため歴史的経緯によりコンテナの分離機構は煩雑であり、たびたびそのモデルの 妥当性が疑われている ⚫
例: cgroup v1 (現在は v2 が主流になった) しかし、Linux カーネルはコンテナ第一の設計ではない! 導入 別に Linux カーネルが悪いわけではない。 コンテナという概念が存在しなかったカーネルに、その分離機能 をそれぞれ独立に積み重ねていった結果である けしからん じゃないか!! 好奇心アヒル Linux に (私は) 納得いかない。けしからん! これからはコンテナの時代なので、コンテナを第一に考えた OS を誕生させましょう!!
8 成果物「 Cyrius」 ⚫ コンテナランタイムに極度に特化した OS であり、 それ以外の機能を有さない ⚫ 既存のコンテナの標準仕様への互換を持つ
⚫ コンテナに期待されるセキュリティと同等の 隔離性・互換性を、Linux と全く異なる セキュリティモデルで実現する 成果物
9 まずはデモ 1. Busybox のコンテナが動作する様子 成果物
10 まずはデモ 1. Busybox のコンテナが動作する様子 2. ブログをホストする Web サーバーのコンテナが動作する様子 成果物
11 まずはデモ 1. Busybox のコンテナが動作する様子 成果物
12 まずはデモ 1. Busybox のコンテナが動作する様子 2. ブログをホストする Web サーバーのコンテナが動作する様子 成果物
13 まずはデモ 1. Busybox のコンテナが動作する様子 2. ブログをホストする Web サーバーのコンテナが動作する様子 成果物
14 コンテナが実行される仕組み 既存のコンテナ OCI Bundle OCI Bundle: 「こういうコンテナを作ってね」というお願い書 コンテナイメージから作られる コンテナランタイムはこれを見てコンテナを立てる
15 コンテナが実行される仕組み 既存のコンテナ OCI Bundle
16 コンテナが実行される仕組み 既存のコンテナ OCI Bundle コンテナ
17 コンテナが実行される仕組み 既存のコンテナ OCI Bundle コンテナ カーネルから提供される「様々な用途に応用できるための最低限の 小さい操作」を組み合わせてコンテナを作る ここの仕組みがむちゃくちゃ複雑
18 もう一度: ⚫ OCI Bundle…「こういうコンテナを立ててね」というお願い書 ⚫ ところで: OCI Bundle のお願いでは、前述した
Linux の機能を使ってコンテナを作成する ことを必ずしも求めない 既存のコンテナ OCI Bundle 展開するファイルシステム、 分離する名前空間、実行するユーザー、 ケーパビリティ、環境変数などの定義
19 もう一度: ⚫ ところで2: Linux コンテナ (プロセス) は OS の機能を利用するために
syscall を発行する が、この syscall の互換性さえ満たせばこのプロセスは下が Linux なのか互換性を持った別 の何かなのかは気にしない 既存のコンテナ コンテナ (プロセス) syscall による やり取り Linuxカーネル
20 もう一度: ⚫ ところで2: Linux コンテナ (プロセス) は OS の機能を利用するために
syscall を発行する が、この syscall の互換性さえ満たせばこのプロセスは下が Linux なのか互換性を持った別 の何かなのかは気にしない 既存のコンテナ コンテナ (プロセス) syscall による やり取り Linuxカーネル…?
21 → OCI Bundle を直接解釈してコンテナを建てる専用 OS が考えられそう? 既存のコンテナ Cyrius の誕生
22 Cyrius の特異性 ⚫ Cyrius は "Type1 Container Runtime" である
(新概念) Cyrius の思想 ハイパーバイザー コンテナランタイム ユーザーランド (Type2) Type2 Hypervisor 例: QEMU, VirtualBox Type2 Container Runtime 例: runc (Docker), youki カーネル空間 (Type1) Type1 Hypervisor 例: VMware ESXi
23 Cyrius の特異性 ⚫ Cyrius は "Type1 Container Runtime" である
(新概念) Cyrius の思想 ハイパーバイザー コンテナランタイム ユーザーランド (Type2) Type2 Hypervisor 例: QEMU, VirtualBox Type2 Container Runtime 例: runc (Docker), youki カーネル空間 (Type1) Type1 Hypervisor 例: VMware ESXi Type1 Container Runtime Cyrius
24 Cyrius の特異性 ⚫ Cyrius は "Type1 Container Runtime" である
(新概念) Cyrius の思想 ハイパーバイザー コンテナランタイム ユーザーランド (Type2) Type2 Hypervisor 例: QEMU, VirtualBox Type2 Container Runtime 例: runc (Docker), youki カーネル空間 (Type1) Type1 Hypervisor 例: VMware ESXi Type1 Container Runtime Cyrius Type1 Container Runtime という概念は 世界初 (おそらく)
25 「コンテナ専用OS」を支えるカーネルの新しい設計思想 カーネルをいかにコンテナに最適化できるか? 1. 「コンテナはネストしない」という強い仮定を置き、ホストとコンテナの2つの世界に分離 されるモデルで表現する 2. ホストプロセスとコンテナプロセスの明確な区別と2つの syscall テーブル
3. コンテナのカーネルオブジェクト化、カーネルによるリソースとライフサイクル管理 4. VFS の完全な分離、コンテナ用ファイルシステムはホストと完全に並列なインスタンス 5. 等々… 詳細: https://github.com/n4mlz/Cyrius Cyrius の思想
26 比較: Linux vs Cyrius ⚫ コンテナを実現するコンポーネントの依存関係 Cyrius の作る新しいコンテナの世界 Cyrius
27 比較: Linux vs Cyrius ⚫ コンテナを実現するコンポーネントの依存関係 Cyrius の作る新しいコンテナの世界 Cyrius
コンテナ専用のカーネルなので、 コンテナに特化した機構を持つ
28 比較: Linux vs Cyrius ⚫ コンテナが実行されるまでの手続き Cyrius の作る新しいコンテナの世界 Cyrius
https://github.com/youki-dev/youki
29 比較: Linux vs Cyrius ⚫ コンテナが実行されるまでの手続き Cyrius の作る新しいコンテナの世界 Cyrius
コンテナ専用のカーネルなので、 コンテナを作成するまでに必要な syscall 呼び出しは1度だけ https://github.com/youki-dev/youki
30 Linux バイナリ互換だけでなく、「Linux コンテナ互換」 ⚫ これは自作 OS のテーマとして面白い ⚫ 自作
OS で動かしたいアプリケーションを Linux 上でコンテナとしてビルドして、自作 OS に持って行ってしまえば良い ⚫ →あとは Linux として実行される ⚫ →自作 OS 用にコンパイルしたり、依存関係を頑張って揃えたりする必要がない ⚫ コンテナレベルの互換を作ったおかげで、自作 OS の上で既存のエコシステムを活用でき る・タダ乗りできる Cyrius の自作 OS としての面白さ
31 世間からの反響 ⚫ 自作 OS ×コンテナというワードが刺さったのか、Twitter で大反響 ⚫ Twitter に定期的に進捗を載せているが、そのたびに300~400いいねついている
⚫ この Cyrius での試みは、実は世間からの注目度が高いのではないか Cyrius がもたらす変革 GitHub: 100スター超え達成 Twitter: 3300いいね、フォロワー300人増
32 応用可能性: ここから見える未来 ⚫ Docker や Kubernetes とのインテグレーション ⚫ Cyrius
は標準仕様に準拠しているので、頑張れば既存のランタイムと連携ができる ⚫ containerd-shim というのを作れば実際に Docker のバックエンドとして呼び出せるようになる見込み ⚫ Cyrius で構成された Kubernetes クラスター ⚫ 自作OSで自作クラウド基盤なんてまだ誰もやったことないはず ⚫ Cyrius だから目指せること! ⚫ 自分自身では Cyrius はかなり面白い技術だと思っているので、いつかこれをテーマに どこかで登壇発表したい Cyrius がもたらす変革
33 まとめ ⚫ Linux コンテナをネイティブ実行できる OS を実装した ⚫ コンテナの実行においては Linux
よりシンプルな設計を達成した ⚫ コンテナセキュリティにおける Attack surface の最小化を図った ⚫ 互換性にまだ難があるので、今後実装を拡充したい おわりに ご清聴ありがとうございました! スターお待ちしてます Cyrius