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
Takaya Saeki
July 22, 2023
Technology
0
670
Unikernelと和解せよ
kernel/vm探検隊東京第16回の発表です
Takaya Saeki
July 22, 2023
Tweet
Share
More Decks by Takaya Saeki
See All by Takaya Saeki
コンテナセキュリティのためのLandlock入門
nullpo_head
3
460
Binary Hacks Rebooted 私選ハック集
nullpo_head
1
590
デバッガと和解せよ
nullpo_head
8
4.2k
Talks on Little-Known Random Facts about WSL2
nullpo_head
0
67
SystemdのWSLディストロを作る
nullpo_head
0
130
WebAssemblyのWeb以外のことぜんぶ話す
nullpo_head
1
420
Noah A Robust and Flexible Operating System Compatibility Architecture
nullpo_head
0
100
ARMの仮想化支援機構 arm入門勉強会
nullpo_head
1
230
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか -
nullpo_head
1
740
Other Decks in Technology
See All in Technology
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
190
技術好きなエンジニアが _リーダーへの進化_ によって得たものと失ったもの / The Gains and Losses of a Tech-Enthusiast Engineer’s “Evolution into Leadership”
kaminashi
0
140
コード品質向上で得られる効果と実践的取り組み
ham0215
0
180
fukuoka.ts #3 社内でESLintの共通設定を配りたい2025年春版
pirosikick
1
260
Explainable Software Engineering in the Public Sector
avandeursen
0
190
クラウド脆弱性の傾向とShisho Cloudの活用
rvirus0817
0
120
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
6
1.4k
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
310
OPENLOGI Company Profile
hr01
0
61k
View Transition API
shirakaba
1
690
Reactを段階的に覗いてみる
ytaisei
2
700
【ServiceNow SNUG Meetup LT deck】ServiceNow「検索性の進化」ZingからNow Assistまで
niwato
1
280
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Side Projects
sachag
452
42k
Rails Girls Zürich Keynote
gr2m
94
13k
We Have a Design System, Now What?
morganepeng
51
7.5k
Bash Introduction
62gerente
611
210k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
The Language of Interfaces
destraynor
156
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
50
2.3k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Embracing the Ebb and Flow
colly
84
4.6k
Unsuck your backbone
ammeep
669
57k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Transcript
UNIKERNELと 和解せよ Takaya Saeki (@nullpo_head) Kernel/VM 探検隊 online part 5
@nullpo_head 1 2022/08/27
@nullpo_head 仮想化周りとかOSとかよくやってます 過去の発表とか • KVM vs HVF (AHF) vs HAXM
– vmm食べ比べ – • カーネル空間ですべてのプロセスを動かすには • WebAssemblyのWeb以外のことぜんぶ話す • SystemdのWSLディストロを作る • デバッガと和解せよ
注:この発表は 一発ギャグです 3
Unikernel作るの、 腰 が 重 く な い ? 4
5 Unikernelは少し面倒で気軽に使えない Unikernel への移植が 面倒 APIを 忘れる その他 Unikernelをやるのが面倒な理由(発表者脳内調べ) POSIX互換
だっけ? 独自 ハイパーコル? Linux APIから unikernelのAPIへ 移植したくない
Unikernelを気軽に 使いたい!!!! 6 Key technology • UKL
UKLというのがあるそうです 9
• ざっくり言って普通のLinuxアプリを Linuxカーネルに静的リンクしてくれる Unikernelの研究 • 理論上普通のLinuxアプリがコンパイル するだけでUnikernelに! • https://github.com/unikernelLinux/ukl 10
UKL
UKLとリンクしてRustプログラムを Unikernelにするtargetが あったら面白いのでは? 11
ビルドしたらUnikernelとしてQemuで動いたら嬉しい!! 13 やりたい
• カーネル向けのCFLAGSでビルドするcustom target “x86_64-uknown-linux-ukl” を作成 • Rustでlibcを差し替えるのは難しい?(rustcの forkが必要?)ので、staticlibを作る • Staticlibを呼ぶCのトランポリンを作る
理想的にはカスタムターゲット向けにビルド するだけでunikernelになってほしいが、 難しそうなので `cargo ukl`コマンドとして実現する 14 UKLでRustプログラムをビルドする
ビルドしたらUnikernelとしてQemuで動いたら嬉しい!! ➡ 動いて嬉しい!! 15 作った
デモ 17