Skip to content

Commit cce11f7

Browse files
committed
Support another annotation format
1 parent 7701d70 commit cce11f7

File tree

3 files changed

+14
-26
lines changed

3 files changed

+14
-26
lines changed

part5.md

+8-21
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,8 @@ VM-entry interruption-information field にベクタ
4646
割り込みを契機としてVMExitを発生させることが
4747
できます([^1])。ただし、この利用方法は一般的ではあり
4848
ません。
49-
[^1]) VMCS の VM-Execution Control Fields の Exception Bitmap
50-
   の各ビットが各例外のベクタ番号に対応していて、ここに1
51-
   を設定するとその例外が発生した時に VMExit が発生するよう
52-
   になります。通常の例外は基本的に VMExit する必要がありま
53-
   せんが、連載第 2 回( Intel VT-x の概要とメモリ仮想化)で解説
54-
   したシャドーページングを行うには、ページフォルト例外で
55-
   の VMExit が必須になります。
49+
50+
[^1]: VMCS の VM-Execution Control Fields の Exception Bitmapの各ビットが各例外のベクタ番号に対応していて、ここに1を設定するとその例外が発生した時に VMExit が発生するようになります。通常の例外は基本的に VMExit する必要がありませんが、連載第 2 回( Intel VT-x の概要とメモリ仮想化)で解説したシャドーページングを行うには、ページフォルト例外での VMExit が必須になります。
5651

5752
### 外部割り込みの仮想化
5853

@@ -154,18 +149,10 @@ root mode/VMX non-root modeの切り替えときにコン
154149
は、特にハイパーバイザが介入すべき処理はありま
155150
せん。このためVMExitは発生せず、すべてCPUが
156151
仮想化を行います。
157-
[^2]) ただし、割り込みハンドラ内で IO ポートアクセスなどの操作
158-
   を行えば VMExit が発生する操作を行えば、そこでは VMExit
159-
   が発生します。
160-
[^3]) VMCS の VM-Execution Control Fields の Secondary
161-
   Processor-Based VM-Execution Controls にある Descriptor-
162-
   table exiting にビットを立てることで、LGDT、LIDT、LLDT、
163-
   LTR、SGDT、SIDT、SLDT、STR の各命令を実行しようとした
164-
   時に VMExit するようになります。
165-
[^4]) この場合、ハイパーバイザは ID のシャドーイングを行ってゲ
166-
   スト OS が意図する割り込みハンドラと異なる割り込みハンド
167-
   ラを設定できます。また、 IDTR へのアクセスをイベントとし
168-
   て受け取り、デバッグ機能を実装することもできます。
152+
153+
[^2]: ただし、割り込みハンドラ内で IO ポートアクセスなどの操作を行えば VMExit が発生する操作を行えば、そこでは VMExitが発生します。
154+
[^3]: VMCS の VM-Execution Control Fields の SecondaryProcessor-Based VM-Execution Controls にある Descriptor-table exiting にビットを立てることで、LGDT、LIDT、LLDT、LTR、SGDT、SIDT、SLDT、STR の各命令を実行しようとした時に VMExit するようになります。
155+
[^4]: この場合、ハイパーバイザは ID のシャドーイングを行ってゲスト OS が意図する割り込みハンドラと異なる割り込みハンドラを設定できます。また、 IDTR へのアクセスをイベントとして受け取り、デバッグ機能を実装することもできます。
169156

170157
## Local APIC の仮想化
171158

@@ -226,8 +213,8 @@ Spaceへの書き込みにより割り込み先CPUの設定を
226213
受け取ります。書き込むデバイスやレジスタの
227214
フォーマットは違いますが 、使い方はほぼI/O
228215
APICと変わりません。
229-
[^5]) 参考資料
230-
   ( http://d.hatena.ne.jp/syuu1228/20120105/1325757315 )
216+
217+
[^5]: 参考資料( http://d.hatena.ne.jp/syuu1228/20120105/1325757315 )
231218

232219
## 物理ハードウェアからの割り込みへの対処
233220

part6.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ KVMとも言えるでしょう。ただし、BHyVeは現在開
3434
得られていますがコードの見通しが悪くなっていま
3535
す。そこで、本連載ではKVMではなくBHyVeを用
3636
いて解説を行うことにします。
37-
[^1]) 2013年1月にFreeBSD-CURRENTの開発ツリーにマージされ
38-
   ました
37+
38+
[^1]: 2013年1月にFreeBSD-CURRENTの開発ツリーにマージされました
3939

4040
## 解説対象のバージョン
4141

@@ -72,7 +72,8 @@ EPT対応モデルが一部存在しています。実機にイン
7272
(VMware Player・VMware Workstation・VMware
7373
Fusion)ならばNested VM([^2])に対応しているため仮想
7474
マシン上で試すこともできます。
75-
[^2]) ハイパーバイザ上でハイパーバイザを実行可能にする機能。
75+
76+
[^2]: ハイパーバイザ上でハイパーバイザを実行可能にする機能。
7677

7778
## BHyVeが提供する機能
7879

txt2md.pl

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@
3737
print "```\n\n";
3838
} elsif (/^▼図 (\d+)\s+(.+)$/) {
3939
print "\n![$2](figures/part${part}_fig$1.png \"$1\")\n\n";
40-
} elsif (/^注 (\d+) \) (.+)$/) {
40+
} elsif (/^注 ?(\d+) ?\) (.+)$/) {
4141
print "\n[^$1]: $2";
4242
while (<>) {
4343
last if(/^$/);
44-
if (/^注 (\d+) \) (.+)$/){
44+
if (/^注 ?(\d+) ?\) (.+)$/){
4545
print "\n[^$1]: $2";
4646
next;
4747
}

0 commit comments

Comments
 (0)