Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
Search
n4mlz
March 08, 2026
Programming
470
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
2
4k
NUMA環境とコンテナランタイム ― youki における Linux Memory Policy 実装
n4mlz
1
1.7k
UNTIL. LT #0x07 n4mlz
n4mlz
0
1.7k
Other Decks in Programming
See All in Programming
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
Are APIs Still Relevant in the AI Era?
soyuka
0
270
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
120
すこし踏み込む CancellationToken
htkym
2
580
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
250
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
220
setup-vp GitLab対応の裏側
naokihaba
0
110
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.3k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
SREの越境 / SRE Collaboration
y0hgi
2
250
FreeBSDでZabbixを動かす
kenkino
0
310
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
180
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
380
Producing Creativity
orderedlist
PRO
348
41k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
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