出版社内容情報
仮想化技術はいたるところで利用されています。クラウドサービスなどで、自由度の高いサーバ環境を即座に利用できるのは仮想化技術があってこそです。ソフトウェアで疑似的にマシンを再現したものを仮想マシンと呼び、仮想マシンを実現するソフトウェアをハイパーバイザと呼びます。
本書では、ハイパーバイザをステップアップ式に実装していくことで、ハイパーバイザによる仮想化技術がどのように実現されているのかを理解していきます。ハードウェアデバイスを操作する側、操作される側の両方の実装を行うことで、仮想化技術と密接に関係している低レイヤの技術を深く理解できます。
【目次】
第1章 仮想マシンとハイパーバイザ
1.1 仮想マシンとはなんだろう
1.2 ハイパーバイザの目的とメリット
1.3 Type1ハイパーバイザとType2ハイパーバイザ
1.4 仮想化支援機能とは
1.5 Type1ハイパーバイザを開発する流れ
1.6 開発環境の構築
1.7 本書で使用する仕様書について
第2章 起動してメッセージを出せるようにする
2.1 何もしないソフトウェアを起動しよう
2.2 DTBを解析しよう
2.3 文字を出そう
第3章 CPUの仮想化支援機能を使ってみる-メモリを仮想化する
3.1 何もしない仮想化をしよう
3.2 メモリ管理をしよう
3.3 メモリの仮想化をしよう
第4章 割り込みの仕組みと仮想デバイスを作る
4.1 割り込みのセットアップをしよう
4.2 ページフォルトの原因を解析しよう
4.3 仮想PL011デバイスを実装しよう
第5章 割り込みコントローラを制御し、デバイス割り込みを可能にする
5.1 割り込みを制御するデバイスを初期化しよう
5.2 PL011の割り込みを受け取ろう
第6章 ファイルの読み書きをできるようにする
6.1 Virtio-Blkを制御しよう
6.2 ファイルシステムを実装しよう
第7章 初めての仮想マシンを実装する
7.1 VM構造体を実装しよう
7.2 VMを起動してみよう
第8章 Linuxが動作するようにする
8.1 GICv3の仮想化をしよう
8.2 仮想タイマを提供しよう
8.3 仮想PL011を改良しよう
8.4 Virtio-Blkデバイスを実装しよう
第9章 複数のCPUコアを動作させる
9.1 コアの起動をしよう
9.2 ロック機構を実装しよう
第10章 コンソールとマルチ仮想マシンを実装する
10.1 コンソールとコマンドを実装しよう
10.2 マルチ仮想マシンを実現しよう
第11章 作成したハイパーバイザを発展させるには
11.1 対応デバイスの追加
11.2 独自の仮想デバイス
11.3 スナップショット機能
11.4 実機への移植
11.5 マイグレーション機能
11.6 デバイスパススルー機能
11.7 Type2ハイパーバイザの実装
11.8 Nested Virtualizationの実装<