作って理解する仮想化技術

サポートページ

ダウンロード

(2025年9月3日更新)

本書のサンプルプログラムは、下記のGitHubで公開しています。

https://github.com/PG-MANA/MiniVisor

使用する際はリポジトリをクローンしてください。詳しくは第1章で解説しています。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに、ご迷惑をおかけしたことを深くお詫び申し上げます。

(2025年10月8日最終更新)

P.20 本文6行目

読み込み専用のものあります
読み込み専用のものあります

P.44 本文下から1行目

read_reg_propaty
read_reg_property

P.51 本文下から9行目

記述されたい内容
記述された内容

P.94 リスト3.23の10行目と本文下から3行目

ORG0
ORGN0

※サンプルプログラムは修正済み

P.94 リスト3.23の11行目と本文下から3行目

IRG0
IRGN0

※サンプルプログラムは修正済み

P.95 図3.21のキャプション

Registe
Register

P.128 リスト5.1の4行目、6行目、13行目

GCID
GICD

※サンプルプログラムは修正済み

P.134 リスト5.4の3行目

let register_offset = int_id & (u32::BITS / 2 - 1);
let register_offset = (int_id & (u32::BITS / 2 - 1)) * 2;

※サンプルプログラムは修正済み

P.137 リスト5.8の2行目と11行目

GCIR
GICR

※サンプルプログラムは修正済み

P.138 リスト5.8(つづき)の7行目

GCIR
GICR

※サンプルプログラムは修正済み

P.142 リスト5.12(つづき)の10行目

GCIR
GICR

※サンプルプログラムは修正済み

P.146 本文下から12行目

interrupt_number[0]
interrupts[0]

P.146 本文下から4行目

interrupt_number[1]
interrupts[1]

P.146 本文下から3行目

interrupt_number[2]
interrupts[2]

P.157 本文8行目

必ずも
必ず

P.164 本文5行目

次のdataというメンバが入ります。
dataというメンバがあります

P.181 リスト6.31の13行目

length -= (file_info.file_size as usize) - offset;
length = (file_info.file_size as usize) - offset;

※サンプルプログラムは修正済み

P.199 本文下から8行目

環境合わせて
環境合わせて

P.201 本文3行目

regs
reg

P.202 本文5行目

regs
reg

P.202 本文下から4行目

これでscripts/virt/dtsを
これでscripts/virt/dts

P.212 本文11行目

割り込みの処理が終えると
割り込みの処理が終わる

P.219 本文下から4行目

src/interrupt.rs
src/exception.rs

P.246 本文下から4行目

もう一つの方法はPSCIは
もう一つの方法PSCIは

(以下2025年9月24日更新)

P.97 リスト3.25 _map_address_stage2 関数(先頭部分) 中

descriptor.set_shareability(Shareability::InterShareable);
descriptor.set_shareability(Shareability::InnerShareable);

※サンプルプログラムは修正済み

P.99 リスト3.26 _map_address_stage2関数(続き) 中

if level >= 2
if level >= 1

※サンプルプログラムは修正済み

P.99 リスト3.26 _map_address_stage2関数(続き) 中

descriptor.set_shareability(Shareability::InterShareable);
descriptor.set_shareability(Shareability::InnerShareable);

※サンプルプログラムは修正済み