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
610
Unikernelと和解せよ
kernel/vm探検隊東京第16回の発表です
Takaya Saeki
July 22, 2023
Tweet
Share
More Decks by Takaya Saeki
See All by Takaya Saeki
いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか
nullpo_head
4
1.5k
デバッガと和解せよ
nullpo_head
8
4k
Talks on Little-Known Random Facts about WSL2
nullpo_head
0
53
SystemdのWSLディストロを作る
nullpo_head
0
85
WebAssemblyのWeb以外のことぜんぶ話す
nullpo_head
1
330
Noah A Robust and Flexible Operating System Compatibility Architecture
nullpo_head
0
57
ARMの仮想化支援機構 arm入門勉強会
nullpo_head
1
160
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか -
nullpo_head
1
660
KVM vs HVF (AHF) vs HAXM
nullpo_head
1
190
Other Decks in Technology
See All in Technology
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
1.2k
第45回 MLOps 勉強会 - ML Test Score を用いた機械学習システムの定量的なアセスメント
masatakashiwagi
3
230
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2
ponkio_o
PRO
1
130
10Xでのデータ基盤の変遷とこれから: データマネジメントのリアル 〜BtoB企業3社の歩みとこれから〜
10xinc
6
1.2k
映像・音声伝送システム
jtes
0
200
FastAPIでのasync defとdefの使い分け
takashi1029
6
1.8k
【shownet.conf_】持続可能な次世代Wi-Fi運用に向けて
shownet
PRO
0
260
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
760
KDD2024参加報告
cyberagentdevelopers
PRO
1
210
XPを始める新人に伝えたい近道の鍵
nakasho
1
270
リスクから学ぶKubernetesコンテナセキュリティ/k8s-risk-and-security
mochizuki875
1
280
OPENLOGI Company Profile for engineer
hr01
1
12k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
The Cost Of JavaScript in 2023
addyosmani
43
5.8k
Atom: Resistance is Futile
akmur
261
25k
Art, The Web, and Tiny UX
lynnandtonic
295
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
Optimizing for Happiness
mojombo
375
69k
From Idea to $5000 a Month in 5 Months
shpigford
380
46k
Debugging Ruby Performance
tmm1
73
12k
Navigating Team Friction
lara
183
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
2
220
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