無料マンガ・ラノベなど、豊富なラインナップで100万冊以上配信中!
◆複数の仮想マシンが動作するハイパーバイザを一から実装◆
仮想化技術はいたるところで利用されています。クラウドサービスなどで、自由度の高いサーバ環境を即座に利用できるのは仮想化技術があってこそです。ソフトウェアで疑似的にマシンを再現したものを仮想マシンと呼び、仮想マシンを実現するソフトウェアをハイパーバイザと呼びます。
本書では、ハイパーバイザをステップアップ式に実装していくことで、ハイパーバイザによる仮想化技術がどのように実現されているのかを理解していきます。ハードウェアデバイスを操作する側、操作される側の両方の実装を行うことで、仮想化技術と密接に関係している低レイヤの技術を深く理解できます。
■こんな方におすすめ
● 仮想化技術が何を行っているのかを理解したい方
● ハイパーバイザの仕組みを理解したい方
● マシンの仕組みを手を動かしながら理解したい方
■目次
第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の実装
第12章 仮想化技術を使いこなす
・12.1 ハイパーバイザの選び方
・12.2 ハイパーバイザの便利な使い方
・12.3 これからのハイパーバイザ
■著者プロフィール
【著者】森 真誠(もり まなみ):小学生時代からプログラミングに興味を持ち、OSからデスクトップアプリなど幅広いレイヤのプログラミングを趣味で行う。大学生のときにAArch64向けの軽量ハイパーバイザ「MilvusVisor」の実装に従事。また、セキュリティ・キャンプ全国大会での講師や世界的に権威あるカンファレンスの一つであるBlack Hat Eurpose 2024で機密仮想マシンに関する講演などを経験。
【監修者】品川 高廣(しながわ たかひろ):東京大学大学院情報理工学系研究科 教授。オペレーティングシステムや仮想化技術、コンピュータセキュリティ等を専門とし、次世代の安全で高性能なシステム基盤の研究開発に取り組んでいる。国産ハイパーバイザ「BitVisor」のチーフアーキテクトとして設計を主導し、その成果を応用した製品「vThrii Seamless Provisioning」の開発にも貢献している。仮想化技術の研究成果により、令和2年度科学技術分野の文部科学大臣表彰「科学技術賞」を受賞した。https://www.os.is.s.u-tokyo.ac.jp/shina/
※アプリの閲覧環境は最新バージョンのものです。
※アプリの閲覧環境は最新バージョンのものです。