Upload
Download free for 30 days
Login
Submit search
BHyVeってなんや
32 likes
10,726 views
Takuya ASADA
1 of 51
Download now
Downloaded 56 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Most read
31
32
33
34
35
36
37
38
39
40
Most read
41
42
43
44
45
46
47
48
Most read
49
50
51
More Related Content
PDF
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
Tetsuo Yamabe
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
PDF
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
AlmaLinux と Rocky Linux の誕生経緯&比較
beyond Co., Ltd.
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
PPTX
本当は恐ろしい分散システムの話
Kumazaki Hiroki
PDF
エンジニアも知っておきたいAI倫理のはなし
Yasunori Nihei
スタディサプリを支えるデータ分析基盤 ~設計の勘所と利活用事例~
Tetsuo Yamabe
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
AlmaLinux と Rocky Linux の誕生経緯&比較
beyond Co., Ltd.
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
本当は恐ろしい分散システムの話
Kumazaki Hiroki
エンジニアも知っておきたいAI倫理のはなし
Yasunori Nihei
What's hot
(20)
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
PDF
その ionice、ほんとに効いてますか?
Narimichi Takamura
PDF
例外設計における大罪
Takuto Wada
PDF
ChatGPTは思ったほど賢くない
Carnot Inc.
PPTX
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
PDF
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
PPTX
MLOpsはバズワード
Tetsutaro Watanabe
PDF
MySQLの文字コード事情 2017版
Masahiro Tomita
PDF
(今ちゃんと振り返る) ゴール指向要求分析 入門
Fuyuki Ishikawa
PDF
[DL輪読会]Network Deconvolution
Deep Learning JP
PDF
グラフデータの機械学習における特徴表現の設計と学習
Ichigaku Takigawa
PDF
マイクロにしすぎた結果がこれだよ!
mosa siru
PDF
オブジェクト指向できていますか?
Moriharu Ohzu
PDF
Where狙いのキー、order by狙いのキー
yoku0825
PDF
ぐるなびが活用するElastic Cloud
Elasticsearch
PPTX
最近のやられアプリを試してみた
zaki4649
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
PDF
Scala 初心者が米田の補題を Scala で考えてみた
Kazuyuki TAKASE
PPTX
私がなぜZscalerに?
Takayoshi Takaoka
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
その ionice、ほんとに効いてますか?
Narimichi Takamura
例外設計における大罪
Takuto Wada
ChatGPTは思ったほど賢くない
Carnot Inc.
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
MLOpsはバズワード
Tetsutaro Watanabe
MySQLの文字コード事情 2017版
Masahiro Tomita
(今ちゃんと振り返る) ゴール指向要求分析 入門
Fuyuki Ishikawa
[DL輪読会]Network Deconvolution
Deep Learning JP
グラフデータの機械学習における特徴表現の設計と学習
Ichigaku Takigawa
マイクロにしすぎた結果がこれだよ!
mosa siru
オブジェクト指向できていますか?
Moriharu Ohzu
Where狙いのキー、order by狙いのキー
yoku0825
ぐるなびが活用するElastic Cloud
Elasticsearch
最近のやられアプリを試してみた
zaki4649
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Scala 初心者が米田の補題を Scala で考えてみた
Kazuyuki TAKASE
私がなぜZscalerに?
Takayoshi Takaoka
Ad
Viewers also liked
(20)
ODP
Bhyve Internals
Takuya ASADA
ODP
Bhyve code reading
Takuya ASADA
PDF
BHyVe: The BSD Hypervisor
Takuya ASADA
PDF
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
PPTX
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
PDF
Free bsd jail入門
Tsubasa Nomura
ODP
Two iconvs
Yuichiro Naito
PPT
MHAを検証して導入した話
Yu Komiya
PDF
MySQL 5.7が魅せる新しい運用の形
yoku0825
PDF
2章 Linuxカーネル - メモリ管理1
mao999
PDF
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
PDF
Kubernetesを触ってみた
Kazuto Kusama
PPS
Secondthoughts
Ramaswamy Ramakrishnan
PPT
Smooth blends: How to add live online training to the e-learning mix
Brightwave Group
PPTX
Total learning: Communities - Learning through Knowledge Sharing
Brightwave Group
KEY
An idea of bios emulation on b hy ve
Takuya ASADA
PDF
รายงานคู่มือการใช้งาน
guest8ec15d
PPTX
Which Customers are You Building the Right Product For PCA9
Paul Teich
PPTX
Online presentation sharing with Slideshare
pbrolley
PDF
Bridge Detailed Construction
Alan Bassett
Bhyve Internals
Takuya ASADA
Bhyve code reading
Takuya ASADA
BHyVe: The BSD Hypervisor
Takuya ASADA
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
Free bsd jail入門
Tsubasa Nomura
Two iconvs
Yuichiro Naito
MHAを検証して導入した話
Yu Komiya
MySQL 5.7が魅せる新しい運用の形
yoku0825
2章 Linuxカーネル - メモリ管理1
mao999
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
Kubernetesを触ってみた
Kazuto Kusama
Secondthoughts
Ramaswamy Ramakrishnan
Smooth blends: How to add live online training to the e-learning mix
Brightwave Group
Total learning: Communities - Learning through Knowledge Sharing
Brightwave Group
An idea of bios emulation on b hy ve
Takuya ASADA
รายงานคู่มือการใช้งาน
guest8ec15d
Which Customers are You Building the Right Product For PCA9
Paul Teich
Online presentation sharing with Slideshare
pbrolley
Bridge Detailed Construction
Alan Bassett
Ad
Similar to BHyVeってなんや
(20)
PDF
Unsafe Nested Virtualization on Intel CPU
Takaaki Fukai
PPTX
勉強会0614 vagrant
Yu Ito
PDF
コンテナ型仮想化とはなんだったのか
えむ ばーど
KEY
物理マシンをケチる技術
Satoshi KOBAYASHI
PPT
Open VZ
Kazuaki Fujikura
PDF
UEFI時代のブートローダ
Takuya ASADA
PDF
コンテナ今昔物語_2021_12_22
勇 黒沢
PDF
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
PDF
Lxc cf201207-presen
Kouhei Maeda
PDF
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
PDF
Eucalyptus on OpenStack
irix_jp
PDF
OpenIndiana+KVMによる仮想マシン
悟 宮崎
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
PDF
NetBSD on Google Compute Engine
Ryo ONODERA
PDF
Osc2009 Do Xen Hara
Kazuhisa Hara
PDF
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS Virtualized Infrastructure Operators group ARCHIVES
KEY
軽快なBHyVe
Takuya ASADA
PDF
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
PDF
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
Unsafe Nested Virtualization on Intel CPU
Takaaki Fukai
勉強会0614 vagrant
Yu Ito
コンテナ型仮想化とはなんだったのか
えむ ばーど
物理マシンをケチる技術
Satoshi KOBAYASHI
Open VZ
Kazuaki Fujikura
UEFI時代のブートローダ
Takuya ASADA
コンテナ今昔物語_2021_12_22
勇 黒沢
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
Lxc cf201207-presen
Kouhei Maeda
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
Eucalyptus on OpenStack
irix_jp
OpenIndiana+KVMによる仮想マシン
悟 宮崎
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
NetBSD on Google Compute Engine
Ryo ONODERA
Osc2009 Do Xen Hara
Kazuhisa Hara
VIOPS04: Intel VT ~仮想化を支える基礎技術~
VIOPS Virtualized Infrastructure Operators group ARCHIVES
軽快なBHyVe
Takuya ASADA
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
More from Takuya ASADA
(20)
PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
PDF
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
Takuya ASADA
PDF
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
PDF
OSvのご紹介 in Java 8 HotSpot meeting
Takuya ASADA
PDF
OSvパンフレット v3
Takuya ASADA
PDF
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
PDF
OSv噺
Takuya ASADA
PDF
OSvの概要と実装
Takuya ASADA
PDF
Linux network stack
Takuya ASADA
PDF
Ethernetの受信処理
Takuya ASADA
PDF
Presentation on your terminal
Takuya ASADA
PDF
僕のIntel nucが起動しないわけがない
Takuya ASADA
PDF
Interrupt Affinityについて
Takuya ASADA
PDF
OSvパンフレット
Takuya ASADA
PDF
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
PDF
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
PDF
10GbE時代のネットワークI/O高速化
Takuya ASADA
PDF
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
PDF
仮想化環境での利用者公平性
Takuya ASADA
PDF
仮想化環境におけるパケットフォワーディング
Takuya ASADA
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
高スループットなサーバアプリケーションの為の新しいフレームワーク 「Seastar」
Takuya ASADA
ヤマノススメ〜秋山郷 de ハッカソン〜
Takuya ASADA
OSvのご紹介 in Java 8 HotSpot meeting
Takuya ASADA
OSvパンフレット v3
Takuya ASADA
OSvのご紹介 in OSC2014 Tokyo/Fall
Takuya ASADA
OSv噺
Takuya ASADA
OSvの概要と実装
Takuya ASADA
Linux network stack
Takuya ASADA
Ethernetの受信処理
Takuya ASADA
Presentation on your terminal
Takuya ASADA
僕のIntel nucが起動しないわけがない
Takuya ASADA
Interrupt Affinityについて
Takuya ASADA
OSvパンフレット
Takuya ASADA
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
10GbE時代のネットワークI/O高速化
Takuya ASADA
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
仮想化環境での利用者公平性
Takuya ASADA
仮想化環境におけるパケットフォワーディング
Takuya ASADA
Recently uploaded
(7)
PDF
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
PDF
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
PDF
[email protected]
Matsushita Laboratory
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
翔泳社 「C++ ゼロからはじめるプログラミング」対応 C++学習教材(三谷純)
Jun MITANI
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
池田 直哉
Working as an OSS Developer at Ruby Association Activity Report 2025
Hiroshi SHIBATA
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Masaki Yamakawa
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
hatedwunao
[email protected]
Matsushita Laboratory
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Akira Tanaka
BHyVeってなんや
1.
BHyVe ってなんや
@syuu1228 1
2.
ここでちょっとおさらい
2
3.
3
4.
x86 での仮想化実現方法
4
5.
5
6.
x86 上で x86
を仮想化して るんだから、命令を直接実 CPU で実行したい! ※ 但し実行しちゃまずい奴はどうにかしてね♥ 6
7.
x86 上で x86
を仮想化して るんだから、命令を直接実 CPU で実行したい! ※ 但し実行しちゃまずい奴はどうにかしてね♥ 7
8.
8
9.
9
10.
10
11.
11
12.
12
13.
直接実行しちゃマズい命令 だけ trap してエミュレー
ションすればいい 13
14.
14
15.
15
16.
あれっ これ無理じゃね
16
17.
根性でどうにかする ●
VMWare – 実行時にマズい命令を動的に書き換え ● Xen – 手で書き換え 17
18.
つらい
18
19.
Intel VT
19
20.
CPU にゲスト用のモードを追加!
20
21.
21
22.
22
23.
VMX root mode (ハイパーバイザ側)
VMX nonroot mode (ゲスト側) 23
24.
VMX root mode (ハイパーバイザ側)
VMX nonroot mode (ゲスト側) VMLAUNCH VMRESUME 24
25.
VMX root mode (ハイパーバイザ側)
VMX nonroot mode (ゲスト側) VMExit 25
26.
VMCS 構造体 ●
Virtual Machine Control Structure ● 4KB の構造体 ● 保存するもの – 例外の引き起こす命令の設定 – プログラムカウンタの値 – 各種レジスタの値 – VM のメモリ開始位置 etc... 26
27.
Intel VT でのゲスト OS
動作の流れ 1.VMCS にゲスト環境の設定をロード 2.CPU に VMCS をセット 3.VMLAUNCH でゲストモードに切り替え 4. ゲスト環境実行 5. 何らかの trap 要因が発生、 VMExit する 6.VMExit 要因を調べ、要因に合わせたエミュレーション処理を行う 7.3 に戻る 27
28.
KVM の考え方
28
29.
VT を前提にすればハイパ ーババイザ簡単に作れるん
じゃね? ※VMWare とか Xen と比較して。 29
30.
Intel VT でのゲスト OS
動作の流れ 1.VMCS にゲスト環境の設定をロード 2.CPU に VMCS をセット 3.VMLAUNCH でゲストモードに切り替え 4. ゲスト環境実行 5. 何らかの trap 要因が発生、 VMExit する 6.VMExit 要因を調べ、要因に合わせたエミュレーション処理を行う 7.3 に戻る エミュレータが欲しいなら、 QEMU を使えばいいじゃない 30
31.
31
32.
Intel VT でのゲスト OS
動作の流れ 1.VMCS にゲスト環境の設定をロード 2.CPU に VMCS をセット 3.VMLAUNCH でゲストモードに切り替え 4. ゲスト環境実行 5. 何らかの trap 要因が発生、 VMExit する 6.VMExit 要因を調べ、要因に合わせたエミュレーション処理を行う 7.3 に戻る 白いところを KVM がやる。黄色いところを QEMU がやる。 32
33.
簡単にハイパーバイザでき ちゃった!しかも速い!
33
34.
おさらい終わり
34
35.
ではそろそろ BHyVe の話に戻ろうか
35
36.
BHyVe ってなんやろ? 知ってる人挙手 ノ
36
37.
BHyVe ってなんやろ? ●
最近出てきたばっかりのハイパーバイザ ( 2011/05/13 に NetApp が BSDCan で発表) ● FreeBSD カーネルの1機能として実装されている →平たく言うと Linux KVM の FreeBSD 版! ● シンプルな構造 ● BSD ライセンス ● 絶賛開発中( http://wiki.freebsd.org/BHyVe ) 37
38.
「車輪の再発明?」 「そうだね。ただし BSD ライセンスの車輪だ。」
38
39.
BHyVe 動作イメージ /usr/sbin/bhyve
User program IOCTL(VM_RUN) VMExit BSD kernel vmm.ko Guest kernel VMLAUNCH 39
40.
BHyVe 詳細 ●
Intel VTx, EPT サポート必須(シャドーページング非サポート) → Nehalem 以降の Intel CPU のみ対応 ● AMD SVM 未対応 ● BIOS Emulation /ディスクイメージからのブート未対応 ゲストカーネルをロードする事によって起動 ゲストカーネルローダは FreeBSD カーネルのみ対応 ● ブロックデバイスは virtioblk にのみ対応 ● イーサネットデバイスは virtionet にのみ対応 ● コンソールデバイスは独自ドライバが必要、 UART コンソールは絶賛実装中 ● VGA デバイス・ PS/2 デバイス・ USB デバイスなどは未対応 ● Intel VTd に対応、 PCI passthrough 可能 ● MSI 割り込みのみ対応→ Legacy 割り込み/ MSIX 割り込み未対応 40
41.
もしかして: めっちゃ機能少ない
41
42.
前向きに考えよう
42
43.
今ならハイパーバイザの コードが簡単に
全行読破出来る! 43
44.
今なら簡単なパッチで ハイパーバイザの開発に
参加し放題! 44
45.
BHyVe 利用例 ●
参考資料: http://callfortesting.org/bhyve/ から http://people.freebsd.org/~neel/bhyve/vm1.tar.gz を ダウンロード、 vmrun.sh を参照 kldload vmm.ko /usr/sbin/bhyveload m ${lowmem} M {highmem} h {bootdir} ${vmname} /usr/sbin/bhyve c ${cpus} m ${lowmem} M{highmem} s 1,virtionet,tap0 s 2,virtioblk,${diskdev} 45
46.
KVM 利用例(比較) modprobe kvm_intel.ko kvm m 512 vnc :0 drive file=/foo/bar.img,if=virtio,index=0,boot=on net nic,model=virtio,macaddr=00:11:22:33:44:55 net tap,ifname=tap0
46
47.
bhyveload?? ●
参考資料: http://callfortesting.org/bhyve/ kldload vmm.ko /usr/sbin/bhyveload m ${lowmem} M {highmem} h {bootdir} ${vmname} /usr/sbin/bhyve c ${cpus} m ${lowmem} M{highmem} s 1,virtionet,tap0 s 2,virtioblk,${diskdev} ${vmname} お前何者だ? 47
48.
各コマンドの役割分担 ●
/usr/sbin/bhyveload VM インスタンスを作成し、 BSD カーネルを VM インスタンスのメモリ領域にロ ードして起動可能な状態を作る ● /usr/sbin/bhyve bhyveload が初期化した VM インスタンスを実行し、ディスク、 NIC 、コンソール などのデバイスエミュレーション処理を行う VM インスタンスの状態は、プロセス内ではなく /dev/vmm/${vmname} というデバ イス上、つまりカーネル内に保持される。 このファイルへ read(), write(), mmap() する事により VM 内のメモリ空間にアクセ ス出来る。 48
49.
なにそれこわい ●
YES WE CAN!! dd if=/dev/vmm/testvm of=memdump bs=1024 count=1024 ● 僕が狂ったこと言ってるんじゃなく、 BSDCan で NetApp が発表したスライドに出てくる 49
50.
bhyveload の動作 ●
sysctl(“hw.vmm.create”, vm_name) → /dev/vmm/${vm_name} を作成 ● open(/dev/vmm/${vm_name}) ● seg.gpa = 0 seg.len = mem_size ioctl(fd, VM_MAP_MEMORY, seg) membase = mmap(NULL, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0) ● userboot.so を使って membase の領域へ BSD カーネルを memcpy() 50
51.
bhyve の動作 ●
open(/dev/vmm/${vm_name}) ● デバイス初期化 ● pthread_create(fbsdrun_start_thread) fbsdrun_start_thread() { while(1) { ioctl(VM_RUN, &vmexit) handler[vmexit.exitcode](&vmexit, &vcpu); } } ● メイン関数はデバイスエミュレーションの処理要求イベントを kevent() で待つ 51
Download