SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
「ハイパーバイザの作り方」
読書会#2
@syuu1228
13年9月11日水曜日
はじめに:本日の資料
• ハイパーバイザの作り方∼ちゃんと理解する仮想化技
術∼ 第2回 IntelVT-xの概要とメモリ仮想化
http://d.hatena.ne.jp/syuu1228/20130823/1377223503
13年9月11日水曜日
はじめに:SDMの読み方
• VT-xの範囲はVolume 3, Chapter 23-33 + Appendix A-C
• アドレス変換:Chapter 28
• メモリ仮想化:Chapter 32.3
13年9月11日水曜日
ゲストメモリ空間が
仮想化されていないと
CPU上で直接ゲストOSの命令列を実行する
          ↓
メモリアクセス命令も直接実行される
          ↓
ホストマシン上の全メモリ空間にアクセス可能になる
          ↓
ハイパーバイザのメモリ領域にアクセス出来てしまう
ホストマシン上のデバイスへMMIO出来てしまう
13年9月11日水曜日
ページング
• 仮想メモリ(仮想マシンの話とは関係ない)をサポートするOS/アーキテクチャでは、プロセス1つ
1つに独立した仮想的なメモリ空間を提供している
• 個別のメモリ空間を提供する事により、他のプロセスやカーネルのメモリ空間への不正なアクセスを
防ぐことができる(メモリ保護)
• メモリ空間を固定長のページに分割し、仮想ページ番号:物理ページ番号の割り当て表(ページテー
ブル)を使ってメモリアクセスを行うページング方式が主流
(仮想アドレスから物理アドレスへの変換はMMUがページテーブルを用いて行う)
プロセス A
1
2
3
4
5
6
7
8
物理メモリ
1 2
2
3
1 5
62
3
ページテーブル A
ページテーブル B
1
2
プロセス B
1
▼図2 ページテーブル
13年9月11日水曜日
ページングと仮想化
• ゲストマシン上のページテーブルが指す物理ページ番号と、ハイ
パーバイザがゲストマシンへ割り当てたい実際の物理ページの範
囲が異なる
• ゲスト物理ページ番号:ホスト物理ページ番号の変換を行いたい
プロセス A
1
2
3
4
ゲスト
物理メモリ
1
2
3
4
5
6
7
8
物理メモリ
1 1
2
ページテーブル A
ゲストA
1
プロセス B
1
2
3
4
ページテーブル B
1
2
プロセス A
1
2
3
4
ゲスト
物理メモリ1 1
2
ページテーブル A
ゲストB
1
プロセス B
1
2
3
4
ページテーブル B
1
2
13年9月11日水曜日
X86/X64のページング機構
• 1ページ=4KB(CPUの設定によっては2MB, 4MB, 1GBのページもサポートする
が、あまり使われていない)
• 多段化されたページテーブルを用いる(x86では2段、x64・PAEでは4段)
• MMUがページテーブルへアクセス、アドレス変換はソフトウェアに対して透
過的に行われる
• CR3:ページテーブルのアドレスを指定/CR0:ページング有効化ビット
(PG)
• ページが存在しないと#PF(exception 14)が発生
13年9月11日水曜日
二段ページテーブル(X86)
• ページテーブル=4MBの範囲(1024エントリ)
• ページディレクトリ=4GBの範囲(1024エントリ)
CR3 Page
Directory
4MB* 1024
Directory
31 22
Table
21 12
Offset
11 0
Page
Table
Page
Table
4KB* 1024
Physical
Page
Physical
Page
Physical
Page
Physical
Page
4KB
13年9月11日水曜日
四段ページテーブル(X64)
• ページテーブル=2MBの範囲(512エントリ)
• ページディレクトリ=1GBの範囲(512エントリ)
• ページディレクトリポインタ=512GBの範囲(512エントリ)
• ページマップレベル4=256TBの範囲(512エントリ)
CR3 Page Map
Level 4
512GB* 512
PML4
47 39
Directory Ptr
38 30
Directory
29 21
Table
20 12
Offset
11 0
Page
Directory
Pointer
Page
Directory
Pointer
1GB* 512
Page
Directory
Page
Table
Page
Table
Page
Table
2MB* 512
Page
Table
Page
Table
Page
Table
Page
Table
4KB* 512
Physical
Page
Physical
Page
Physical
Page
Physical
Page
4KB
13年9月11日水曜日
メモリの仮想化手法
• ゲスト物理ページ番号からホスト物理ページ番号への変換を行う方法として、ソフトウェアにより実現するものとハ
ードウェアにより実現するものの二種類がある
• シャドーページング
• ソフトウェア上のテクニックにより仮想化を実現
• ソフトウェアによるテクニックのため、元々初期のVMwareのようにVT-xを使わない仮想化方式で利用されていた
• それなりに大きなオーバーヘッドが生じる
• ネステッドページング(Intel EPT)
• ゲスト物理ページ番号からホスト物理ページ番号の変換を行うための新たなページテーブル(EPT)を導入
• VMX non-root mode(ゲストモード)でのメモリアクセス時にEPTを参照してアドレス解決を行うようMMUを拡張
• 高速だが、対応CPUが限られる
13年9月11日水曜日
シャドーページング
ゲスト上での物理ページ番号1∼4が5∼8になるように、ハイパーバイザからアドレス変
換の結果を曲げたい
                    ↓
ゲストOSにはページテーブルAを使っているように見せかけて、実際にはハイパーバイザが
ページテーブルAをコピーして必要な変更を加えたページテーブルA”をCPUへセットしよう
プロセス A
1
2
3
4
1
2
3
4
5
6
7
8
物理メモリ
1 2
2
ページテーブル A
ゲストA
1
プロセス B
1
2
3
4
ページテーブル B
1 5
2
ページテーブル A”
1
2
7
8
ページテーブル B”
1
2
ゲスト
物理メモリ
ゲスト
物理メモリ
6
13年9月11日水曜日
シャドーページングの実装
• CR3への書き込み(=ページテーブルのセット)のトラップ
CR3への書き込みでVMExit
指定されたページテーブルの複製(シャドーページテーブル)を作り、シャドーページテーブルのアドレス
をCR3へセット
• CR3の読み込み(=ページテーブルアドレスの読み込み)のトラップ
CR3の読み込みでVMExit
シャドー元のアドレスを返す
• ページテーブルエントリの書き込みのトラップ
ページテーブルエントリが存在する範囲のページを書き込み禁止にしてアクセスがあったら#GP 例外が発生
するようにしておく
#GPでVMExit
ページテーブルエントリへの読み書きの 褄が合うように、シャドー元とシャドー先ページテーブルを書き
換え
13年9月11日水曜日
EPT
• 仮想マシンの初期化時にEPTを作成、ページ割り当てを決めてEPTに設定(通常のページングと同じく、未割り
当てにしておいてページフォールト契機にデマンド割り当てする事も可能)
• EPTの構造はx64の四段ページテーブルと同じ(ページテーブルエントリの構造は異なる)
• VMCSのVM Execution control field→Extended PageTable Pointer(EPTP)にEPTのアドレスを設定
• シャドーページングのようにページング周りでトラップを行う必要なく、MMUが透過的にアドレス変換を実行
プロセス A
1
2
3
4
ゲスト
物理メモリ
1
2
3
4
5
6
7
8
物理メモリ
1 2
2
ページテーブル A
ゲストA
1
プロセス B
1
2
3
4
ページテーブル B
1
2
5
6
3
4
7
8
EPT A
1
2
13年9月11日水曜日
EPTVIOLATION
• EPT上に存在しないページやアクセス権限がないページ
へのアクセスが発生すると、EPTViolationVMExitが発生
する
• not presentを使ってデマンドページングを行ったり、ア
クセス権限エラーを使ってMMIOのエミュレーションを
行う事が可能(MMIOについては今回は詳しく触れな
い)
13年9月11日水曜日
VPID
• TLBにホスト側でのアドレス変換結果がキャッシュされている状態でVMEntry、ま
たはTLBにゲスト側のアドレス変換結果がキャッシュされている状態でVMExit
し、キャッシュを保持したまま実行を続けると誤動作を起こす
• VMEntry時/VMExit時に毎回TLBフラッシュが必要
→効率が悪い
• TLBエントリにゲストマシン固有のIDをタグ付け出来るようにした(ASIDの仮想
マシン版)
• VMCSのVM Execution control fieldでVPIDを設定、INVVPID命令で特定タグのTLBエ
ントリのみフラッシュ
13年9月11日水曜日

Weitere ähnliche Inhalte

Was ist angesagt?

並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
Kousuke Ruichi
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 

Was ist angesagt? (20)

WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
プロセスとコンテキストスイッチ
プロセスとコンテキストスイッチプロセスとコンテキストスイッチ
プロセスとコンテキストスイッチ
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
 
【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用【社内勉強会】弊社でGit!実案件での運用
【社内勉強会】弊社でGit!実案件での運用
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.230分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタDRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?TensorFlow Lite Delegateとは?
TensorFlow Lite Delegateとは?
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
 
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 
Stack pivot
Stack pivotStack pivot
Stack pivot
 
トランザクション入門
トランザクション入門 トランザクション入門
トランザクション入門
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 

Andere mochten auch

Portfolio Dennis de Vogt
Portfolio Dennis de VogtPortfolio Dennis de Vogt
Portfolio Dennis de Vogt
elperiodistaah
 
Software Engineering College 2 - ETL and databases
Software Engineering College 2 - ETL and databasesSoftware Engineering College 2 - ETL and databases
Software Engineering College 2 - ETL and databases
Jurjen Helmus
 
Scarecrow Festival at Thackley Methodist Church
Scarecrow Festival at Thackley Methodist ChurchScarecrow Festival at Thackley Methodist Church
Scarecrow Festival at Thackley Methodist Church
thackley
 

Andere mochten auch (20)

Bhyve Internals
Bhyve InternalsBhyve Internals
Bhyve Internals
 
MMIO on VT-x
MMIO on VT-xMMIO on VT-x
MMIO on VT-x
 
Tin Can Experience - How we learn and work
Tin Can Experience -  How we learn and workTin Can Experience -  How we learn and work
Tin Can Experience - How we learn and work
 
Which Customers are You Building the Right Product For PCA9
Which Customers are You Building the Right Product For PCA9Which Customers are You Building the Right Product For PCA9
Which Customers are You Building the Right Product For PCA9
 
A road map to 2020 - how can learning technologies support fast-changing busi...
A road map to 2020 - how can learning technologies support fast-changing busi...A road map to 2020 - how can learning technologies support fast-changing busi...
A road map to 2020 - how can learning technologies support fast-changing busi...
 
Kelly C. Ruggles
Kelly C. RugglesKelly C. Ruggles
Kelly C. Ruggles
 
7&7 - 7 Years and 7 Lessons from Design Commisison
7&7 - 7 Years and 7 Lessons from Design Commisison7&7 - 7 Years and 7 Lessons from Design Commisison
7&7 - 7 Years and 7 Lessons from Design Commisison
 
Portfolio Dennis de Vogt
Portfolio Dennis de VogtPortfolio Dennis de Vogt
Portfolio Dennis de Vogt
 
NESHEP Meeting Review (01-02-11)
NESHEP Meeting Review (01-02-11)NESHEP Meeting Review (01-02-11)
NESHEP Meeting Review (01-02-11)
 
Han 342 En
Han 342 EnHan 342 En
Han 342 En
 
Kelly C. Ruggles
Kelly C. RugglesKelly C. Ruggles
Kelly C. Ruggles
 
Kelly Ruggles
Kelly RugglesKelly Ruggles
Kelly Ruggles
 
94 Crane Overturns
94   Crane Overturns94   Crane Overturns
94 Crane Overturns
 
Кулинарные онлайн курсы. 23.01.14
Кулинарные онлайн курсы. 23.01.14Кулинарные онлайн курсы. 23.01.14
Кулинарные онлайн курсы. 23.01.14
 
Groundworks Shad Booking Form
Groundworks Shad Booking FormGroundworks Shad Booking Form
Groundworks Shad Booking Form
 
Software Engineering College 2 - ETL and databases
Software Engineering College 2 - ETL and databasesSoftware Engineering College 2 - ETL and databases
Software Engineering College 2 - ETL and databases
 
Scarecrow Festival at Thackley Methodist Church
Scarecrow Festival at Thackley Methodist ChurchScarecrow Festival at Thackley Methodist Church
Scarecrow Festival at Thackley Methodist Church
 
AbcdáLio
AbcdáLioAbcdáLio
AbcdáLio
 
Social media marknadsföring - restaurang- och matbranschen
Social media marknadsföring - restaurang- och matbranschenSocial media marknadsföring - restaurang- och matbranschen
Social media marknadsföring - restaurang- och matbranschen
 
Deepwater Horizon Drilling Rig
Deepwater Horizon Drilling RigDeepwater Horizon Drilling Rig
Deepwater Horizon Drilling Rig
 

Mehr von Takuya ASADA

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
Takuya ASADA
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレット
Takuya ASADA
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
 
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD HypervisorImplements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Takuya ASADA
 

Mehr von Takuya ASADA (20)

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
 
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meetingOSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
 
OSvパンフレット v3
OSvパンフレット v3OSvパンフレット v3
OSvパンフレット v3
 
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/FallOSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
 
OSv噺
OSv噺OSv噺
OSv噺
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
Linux network stack
Linux network stackLinux network stack
Linux network stack
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminal
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレット
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD HypervisorImplements BIOS emulation support for BHyVe: A BSD Hypervisor
Implements BIOS emulation support for BHyVe: A BSD Hypervisor
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

「ハイパーバイザの作り方」読書会#2