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
Unikernelの話
Search
funera1
August 23, 2023
0
80
Unikernelの話
funera1
August 23, 2023
Tweet
Share
More Decks by funera1
See All by funera1
Mercari Summer Intern 2022
funera1
0
28
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Thoughts on Productivity
jonyablonski
70
4.8k
GraphQLとの向き合い方2022年版
quramy
49
14k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
BBQ
matthewcrist
89
9.8k
Site-Speed That Sticks
csswizardry
10
820
Facilitating Awesome Meetings
lara
55
6.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
GitHub's CSS Performance
jonrohan
1032
460k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
Unikernelの話
仮想マシンとは 物理コンピュータと同じ機能をソフトウェアで実現したコン ピュータのこと VM コンテナ
VMについて App1 App2 HW Hypervisor Guest OS Bins/Libs Virtual HW
Guest OS Bins/Libs Virtual HW カーネルが分離されていて、セキュリティは高い しかし、大量のリソースを使う
コンテナについて HW OS Bins/Libs App1 Bins/Libs App2 Container Engine Bins/Libs
リソースを少ししか使わず、軽量 しかし、カーネルを共有していて、セキュリティ的には不十分
軽量で高セキュリティな実行環境があればうれしい!
Unikernel Unikernelとは、アプリケーションをライブラリ OS(LibOS)の必要最小限の機能のみとリンクさせ、 単一アドレス空間で、直接ハードウェアやハイパーバイザ上で動作するようにしたマシンイメージのこと Lib OS App App App App
Lib OS App Lib OS App Lib OS App Unikernel OS App App App App App 従来のOS LibOS OSの機能をライブラリ化 したもの
Unikernelの特徴 アプリケーションの必要最小限の kernel機能をリンクするため、 イメージのサイズが小さい。( 10MB程度) 軽量
Unikernelの特徴 単一アドレスで動作することで、従来の OSのようなアドレス空間の移動の際にかかるオーバーヘッドがないた め、高速な実行が可能 ユーザ空間 カーネル空間 コンテキストスイッチ 従来のOS 単一アドレス空間 Unikernel
Unikernelの特徴 セキュリティが高い バイ ナリ バイナ リ App 機能A 機能B 機能C
LibOS App 機能A 機能D 機能E LibOS イメージサイズが小さい (Attack Surfaceが小さい) カーネル分離&カーネルごと に構成要素が異なる
Unikernelは軽量・高速・高セキュリティ!
Unikernelの課題 • Unikernelと従来のOSは異なる構成 • 必要最低限のOS機能とリンクするために、OSレイヤの知識が必要 • 従来のアプリケーションをUnikernelで動かす場合、 基本的にアプリケーションの改変が必要 Unikernelを使うは難しい&コストがかかる
Unikernelの今後 このような課題を受けて、 UnikraftやUnikernel Linux(UKL)のような技術が 開発されている
network stack liblwip.o libtcpip.o libhttp.o filisystems libvfs.o libfat.o libext3.o schedulers
libcoop.o libpreempt.o librt.o … Unikernel liblwip.o libvfs.o libcoop.o Unikraft ②ビルド時に、自動で必要なライブラリを 選択してくれる ①Unikraftがアプリケーションが使いうる機能をライブラリとして提供
UKL Linuxやglibcへパッチを当てることで、Linuxアプリをほとんど改変なしに、Unikernel として構築できる
まとめ • UnikernelはVMとコンテナの良いところを合わせた特徴を持つ • ただ、Unikernelを使うのは難しい&コストがかかる • この課題を軽減するような技術も生まれてきている