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
現代を支える仮想化の仕組み @ 情報科学若手の会・セキュリティ若手の会 春の陣2026
Search
Big Buddha
March 21, 2026
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
現代を支える仮想化の仕組み @ 情報科学若手の会・セキュリティ若手の会 春の陣2026
TBD
Big Buddha
March 21, 2026
More Decks by Big Buddha
See All by Big Buddha
実装がすべてではない、開発者の周りから考える Web プロダクトセキュリティ
oldbigbuddha
2
820
Security という英単語から考えるサイバーセキュリティ
oldbigbuddha
0
76
seccamp 2022 online 体験記+α
oldbigbuddha
0
200
Minecraft のサーバーを サクッと準備したい
oldbigbuddha
0
230
フィンランドで体験したICT教育
oldbigbuddha
0
2.5k
Lesson 2: C言語に触れてみる
oldbigbuddha
0
190
Lesson 1: プログラミングとは
oldbigbuddha
0
250
Lesson 0: レッスンを始める前に
oldbigbuddha
0
150
Fuelで幸せフエル?/ Fuel make me happy?
oldbigbuddha
0
530
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
私がブラウザを自作したくなった理由
supurazako
1
270
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
120
自宅NWにISR4331を導入してみた話
okaits
0
120
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Oracle MCP Servers Explained
thatjeffsmith
0
310
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
250
Model Studio CLI × Token Plan
maigo999
0
200
AI for Science時代を切り開く、政府の次世代HPC戦略の展望
gpuunite_official
0
130
関東Kaggler会発表資料
takoi
1
270
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
Unsuck your backbone
ammeep
672
58k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.4k
Rails Girls Zürich Keynote
gr2m
96
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Exploring anti-patterns in Rails
aemeredith
3
470
Transcript
hoge 現代を支える仮想化の仕組み @情報科学若手の会・セキュリティ若手の会 春の陣2026 OJI
自己紹介 OJI(@OldBigBuddha) SWE @ GMO Flatt Security Inc. Developing “Sunaba”
/ “Takumi Runner” TSKaigi 運営スタッフ seccamp ‘22 Bコース修了生 ミニキャンプ 2023 in 広島 講師
今日の流れ 「仮想化」とはなにか 仮想化の種類 ハイパーバイザーとVM 「プロセス」という仮想化 「プロセス」から「コンテナ」へ
「仮想化」とは何か
「仮想化」とはなにか 形容詞 ほぼ、あるいは非常に近い記述内容であり、わずかな違いは問題にならない。 (“virtual certainty” で「ほぼ確実」とか「事実上確実」) コンピュータソフトウェアの使用によって存在するように見せかけるもの。 例えばインターネット上など。 実体が存在する訳では無いが、実体との差が問題にならないレベルの何か (実質同じ)
自動翻訳の最後の難問 - https://wirelesswire.jp/2020/02/74267/
「仮想化」とはなにか 実体との差が 問題にならないレベルの何か
「仮想化」とはなにか 「実体」は何? 実体との差が 問題にならないレベルの何か
「仮想化」とはなにか 物理的に存在するコンピューターとの 差が問題にならないレベルの何か
「仮想化」とはなにか 物理的に存在するコンピューターとの 差が問題にならないレベルの何か 誰目線?いつの話?
「仮想化」とはなにか プログラムが動いているときに 物理的に存在するコンピューターとの 差が問題にならないレベルの何か
「仮想化」とはなにか プログラムが動いているときに 物理的に存在するコンピューターとの 差が問題にならないレベルの何か 何?
「仮想化」とはなにか プログラムが動いているときに 物理的に存在するコンピューターとの 差が問題にならないレベルの 実行環境
「仮想化」とはなにか プログラムが動いているときに 物理的に存在するコンピューターとの 差が問題にならないレベルの 実行環境を実現する技術 仮想化技術
仮想化の種類
コンピューターの超ざっくり雰囲気 メモリ領域が 200 MiB 欲しい プログラム RAM のうち 領域Aを割り当てる OS
ハードウェア 領域Aに都度データが 書き込まれる
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) プログラム1 プログラム2 ・ ・ ・ ・ プログラムN OS
CPU メモリ ネットワーク インターフェース 外部記憶装置
「仮想化」とはなにか プログラムが動いているときに 物理的に存在するコンピューターとの 差が問題にならないレベルの 実行環境
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) プログラム1 プログラム2 ・ ・ ・ ・ プログラムN OS
↓これら↑の依存に問題が生じなければOK CPU メモリ ネットワーク インターフェース 外部記憶装置
どうやって実現するか
コンピューターの超ざっくり雰囲気 メモリ領域が 200 MiB 欲しい プログラム RAM のうち 領域Aを割り当てる OS
ハードウェア 領域Aに都度データが 書き込まれる
コンピューターの超ざっくり雰囲気 この2箇所に仮想化技術を挟む余地がある! OS プログラム ハードウェア
コンピューターの超ざっくり雰囲気 この2つが現代の 主要な仮想化技術 プロセス/コンテナ ハイパーバイザー/VM OS プログラム ハードウェア
ハイパーバイザーとVM
コンピューターの超ざっくり雰囲気 メモリ領域が 200 MiB 欲しい プログラム RAM のうち 領域Aを割り当てる OS
ハードウェア 領域Aに都度データが 書き込まれる
ハイパーバイザー メモリ領域が 200 MiB 欲しい プログラム RAM のうち 領域Aを割り当てる OS
ハイパー バイザー ハードウェア 領域αに都度データ が書き込まれる 領域Aは 物理的には領域αだよ
ハイパーバイザー 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 仮想 ハードウェア プログラム
プログラム ・ ・ ・ ・ プログラム Guest OS 1 Guest OS 2 ・ ・ ・ ・ Guest OS N 物理リソースを 良い感じに 各 Guest OS へ 割り振る 物理的には ひとつの ハードウェア
「仮想化」とはなにか 実体との差が 問題にならないレベルの何か
ハイパーバイザー 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 仮想 ハードウェア プログラム
プログラム ・ ・ ・ ・ プログラム Guest OS 1 Guest OS 2 ・ ・ ・ ・ Guest OS N 物理リソースを 良い感じに 各 Guest OS へ 割り振る 物理的には ひとつの ハードウェア
VM プログラム プログラム プログラム Virtual Machine(VM) ・ ・ ・ ・
Guest OS 1 Guest OS 2 Guest OS N ・ ・ ・ ・ 仮想 ハードウェア 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 物理的には ひとつの ハードウェア
コンピューターの超ざっくり雰囲気 物理コンピューター プログラム OS ハードウェア 同じ依存 VM プログラム Guest OS
仮想 ハードウェア
補足: ハイパーバイザーの種類
ハイパーバイザー(Type-1) 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー Type-1 仮想 ハードウェア
ハードウェアの上で 直接動いている 物理的には ひとつの ハードウェア プログラム プログラム ・ ・ ・ ・ プログラム Guest OS 1 Guest OS 2 ・ ・ ・ ・ Guest OS N
ハイパーバイザー(Type-2) 仮想 ハードウェア 仮想 ハードウェア OS ハイパー バイザー Type-2 仮想
ハードウェア プログラム プログラム ・ ・ ・ ・ プログラム Guest OS 1 Guest OS 2 ・ ・ ・ ・ Guest OS N 物理的には ひとつの ハードウェア OSの上で 動いている
ところで
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) プログラム1 プログラム2 ・ ・ ・ ・ プログラムN OS
CPU メモリ ネットワーク インターフェース 外部記憶装置
ハイパーバイザー VM VM プログラム VM プログラム プログラム ・ ・ ・
Guest OS 1 Guest OS 2 Guest OS N ・ ・ ・ 仮想 ハードウェア 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 物理的には ひとつの ハードウェア
かなり似ていそう
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) OS 複数のプログラムが並列で動いても リソースが競合したり、影響がなるべく 他のプログラムへ影響がでないようにする CPU メモリ ネットワーク インターフェース
外部記憶装置 プログラム1 プログラム2 ・ ・ ・ ・ プログラムN
ハイパーバイザー VM VM プログラム VM プログラム プログラム ・ ・ ・
Guest OS 1 Guest OS 2 Guest OS N ・ ・ ・ 仮想 ハードウェア 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 物理的には ひとつの ハードウェア 物理リソースを 良い感じに 複数の Guest OS へ割り振る
OS自体が仮想化を行っている
プロセス(Prosess) という仮想化
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) プログラム1 プログラム2 プログラムN ・ ・ ・ ・ 仮想リソース
仮想リソース 仮想リソース CPU メモリ ネットワーク インターフェース 外部記憶装置 プロセス (Process)
OS は何をしているか? ひとつのCPUコアにつき、処理できる演算はひとつまで では1コアCPUではひとつのプログラムしか実行できないのか → 否、プロセスとして各プログラムでひとつのCPUコアを共有している プロセスからみると、ひとつのCPUコアを独占しているように見える(仮想化) プロセス1 プロセス2 OS目線
実行 準備完了 Disk I/O 待ち 実行 準備完了 実行 ネットワーク待ち Disk I/O 待ち プロセス1目線 実行
コンピューターの超ざっくり雰囲気 ハードウェア(いわゆるPC) プログラム1 プログラム2 プログラムN ・ ・ ・ ・ 仮想リソース
仮想リソース 仮想リソース CPU メモリ ネットワーク インターフェース 外部記憶装置 プロセス (Process)
プロセスをコンテナへ
「プロセス」は隔離性が薄い ハードウェア(いわゆるPC) プログラム1 プログラム2 プログラムN ・ ・ ・ ・ 影響あり
仮想リソース 仮想リソース 仮想リソース OS CPU メモリ ネットワーク インターフェース 外部記憶装置
コンテナ ハードウェア(いわゆるPC) プログラム1 プログラム2 プログラムN ✗ ・ ・ ・ ・
影響 不可 ✗ コンテナ 仮想リソース 仮想リソース 仮想リソース OS CPU メモリ ネットワーク インターフェース 外部記憶装置
プロセスをより隔離するために プロセスはリソース効率を主軸に、そのために最低限必要な隔離のみ行っている プロセス1はプロセス2の存在を認知できるし、影響を与えることが出きる プロセスを完全に隔離するために、Linux では以下のコンセプトが存在する 名前空間(Namespace) 一番わかりやすい隔離、各リソースを仕切る壁のようなもの cgroup CPU やメモリなどのリソース利用率を制限する
Capabilities root権限を細分化したもの Secure Computing Mode(seccomp) syscall の呼び出しを制限する LSM を活用した Mandatory Access Control(MAC) 厳格なファイルアクセス制御
コンテナ ハードウェア(いわゆるPC) プログラム1 プログラム2 プログラムN ✗ ・ ・ ・ ・
影響 不可 ✗ コンテナ 仮想リソース 仮想リソース 仮想リソース OS CPU メモリ ネットワーク インターフェース 外部記憶装置
まとめ
「VM」と「コンテナ」 VM VM プログラム プログラム Guest OS Guest OS 仮想
ハードウェア 仮想 ハードウェア ハイパー バイザー コンテナ コンテナ プログラム プログラム 仮想リソース 仮想リソース OS カーネル 物理 ハードウェア 物理 ハードウェア
何を共有しているか VM プログラム VM プログラム Guest OS Guest OS 仮想
ハードウェア 仮想 ハードウェア ハイパー バイザー 高難易度 物理 ハードウェア 物理 ハードウェア コンテナ コンテナ プログラム プログラム 仮想リソース 仮想リソース OS カーネル
こういうこともできる VM VM プログラム コンテナ コンテナ プログラム プログラム 仮想リソース 仮想リソース
Guest OS 1 Guest OS 2 仮想 ハードウェア 仮想 ハードウェア ハイパー バイザー 物理的には ひとつの ハードウェア
今日のまとめ プログラムが動いているときに物理的に存在するコンピューター上で 実行するときとの差が問題にならないレベルの実行環境を準備する技術 仮想化の種類には「VM」と「コンテナ」が存在する 「VM」と「コンテナ」では共有するものが違っている 「コンテナ」の基礎である「プロセス」も仮想化技術のひとつ