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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Big Buddha
March 21, 2026
Technology
42
0
Share
現代を支える仮想化の仕組み @ 情報科学若手の会・セキュリティ若手の会 春の陣2026
TBD
Big Buddha
March 21, 2026
More Decks by Big Buddha
See All by Big Buddha
実装がすべてではない、開発者の周りから考える Web プロダクトセキュリティ
oldbigbuddha
2
780
Security という英単語から考えるサイバーセキュリティ
oldbigbuddha
0
61
seccamp 2022 online 体験記+α
oldbigbuddha
0
190
Minecraft のサーバーを サクッと準備したい
oldbigbuddha
0
220
フィンランドで体験したICT教育
oldbigbuddha
0
2.4k
Lesson 2: C言語に触れてみる
oldbigbuddha
0
180
Lesson 1: プログラミングとは
oldbigbuddha
0
230
Lesson 0: レッスンを始める前に
oldbigbuddha
0
140
Fuelで幸せフエル?/ Fuel make me happy?
oldbigbuddha
0
510
Other Decks in Technology
See All in Technology
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
160
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
420
Arcana: Production-Ready RAG in Elixir @ ElixirConf EU 2026
georgeguimaraes
0
120
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
220
260422_Sansan_Tech_Talk__関西_vol.3_データ活用のリアル__矢田__.pdf
sansantech
PRO
0
140
Anthropic「Long-running a gents」をGeminiで再現してみた
tkikuchi
0
740
Practical TypeProf: Lessons from Analyzing Optcarrot
mame
1
1.6k
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
170
Do Vibe Coding ao LLM em Produção para Busca Agêntica - TDC 2026 - Summit IA - São Paulo
jpbonson
3
170
色を視る
yuzneri
0
280
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
330
Route 53 Global Resolver で高額課金発生!
otanikohei2023
0
130
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
550
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
The SEO identity crisis: Don't let AI make you average
varn
0
450
Thoughts on Productivity
jonyablonski
76
5.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
GitHub's CSS Performance
jonrohan
1032
470k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
A better future with KSS
kneath
240
18k
Six Lessons from altMBA
skipperchong
29
4.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
330
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」と「コンテナ」では共有するものが違っている 「コンテナ」の基礎である「プロセス」も仮想化技術のひとつ