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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
n4mlz
March 08, 2026
Programming
320
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.7k
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
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
230
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
320
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
13
6.2k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
180
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
610
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
120
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.4k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.5k
ふつうのFeature Flag実践入門
irof
8
4.2k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
390
Performance Engineering for Everyone
elenatanasoiu
0
210
Lessons from Spec-Driven Development
simas
PRO
0
220
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.6k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
How to build a perfect <img>
jonoalderson
1
5.7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
450
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
Site-Speed That Sticks
csswizardry
13
1.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
980
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