[BitVisor-users:5] BitVisor 1.3 released
Hideki EIRAKU
hdk @ igel.co.jp
2012年 9月 26日 (水) 10:59:46 JST
こんにちは。
BitVisor 1.3 のリリースをお知らせできることをうれしく思います。
http://sourceforge.net/projects/bitvisor/files/
BitVisor 1.3 と BitVisor 1.2 との違いは以下の通りです。
1. AMD-V マルチプロセッサー・マルチコア対応
AMD-V 使用時のマルチプロセッサー・マルチコアに対応した。
2. 64 ビットゲスト OS 対応
64 ビットのゲスト OS に対応した。変更点は以下の通りである:
+ 32 ビットまでしか対応していなかった一部命令の 64 ビットのエミュレーショ
ンに対応した。
+ BT 命令の即値オペランドに対応した。
+ MOV CR 命令、LGDT 命令および LIDT 命令のエミュレーションの実装を修正し
た。
+ シャドウページテーブル: 1GiB ページに対応した。
3. バックグラウンド暗号化
ATA/AHCI に接続されたストレージのバックグラウンド暗号化に対応した。本実装方
式は、東京大学と株式会社イーゲルの特許 (出願中) に基づいている。BitVisor の
他のコードとライセンス形態が異なるため、パッチ形式で同梱する。ライセンスの
詳細は、bitvisor-1.3-bgenc.tar.gz を参照されたい。
4. 高速化
以前のプロセッサーには搭載されていなかった新しい機能を使用することにより、
高速化した。変更点は以下の通りである:
+ キャッシュ制御 (PAT および MTRR) に対応した。
+ AMD-V RVI (NPT) に対応した。VMM が 64 ビットでコンパイルされていて、か
つ、RVI が使用可能であれば、シャドウページテーブルの代わりに RVI を使用
する。
+ Intel VT-x VPID に対応した。
+ Intel VT-x EPT に対応した。EPT が使用可能であれば、シャドウページテーブ
ルの代わりに EPT を使用する。
+ Intel VT-x の unrestricted guest に対応した。これは、Intel プロセッサー
において real-address mode の実行を高速化する。
5. 起動時間短縮
起動時間を短縮するため、以下の変更を行った:
+ ACPI の DSDT 解釈処理を、他の処理と並行してアプリケーションプロセッサー
で行うようにした。
+ クロック周波数を取得するためのスリープ時間を短縮した。
+ 初期化処理の順番を見直した。可能であれば並列に初期化処理を呼び出すよう
にした。
6. グラフィック画面への描画機能
VMM からグラフィック画面にビットマップを描画するための機能を実装した。変更
点は以下の通りである:
+ 一部の Intel グラフィックスコントローラーのフレームバッファーに直接グラ
フィックスを描画する機能を実装した。電気通信大学の ADvisor の成果に基づ
いている。詳しくは http://www.ol.inf.uec.ac.jp/research/advisor/ を参照
されたい。本デバイスドライバーは CONFIG_VGA_INTEL_DRIVER によって有効に
できる。
+ グラフィックス描画機能によってグラフィック画面に VMM のログを出力するオ
プション CONFIG_TTY_VGA を追加した。
7. 並列ビルド対応、ビルド時間短縮
Makefile を改良して、並列ビルドに対応し、ビルド時間を短縮した。変更点は以下
の通りである:
+ make -j による並列ビルドに対応した。
+ ヘッダーファイルの依存関係を検出し、不必要なコンパイルを行わないように
した。
8. OpenSSL 更新
OpenSSL をバージョン 1.0.0g に更新した。改変した OpenSSL ソースファイルの代
わりに、元のソースファイルを使用することで、更新が容易にできるようになっ
た。
9. バグ fix と機能改善
+ Core
o acpi: 再起動に ACPI reset register が使用可能であれば使用するように
した。
o シャドウページテーブル: メモリリークを修正した。
o entry: バイナリーが 16MiB を超えても対応できるようページテーブルを
修正した。
o panic: setvideomode に失敗しても他のプロセッサーで実行を継続するよ
うにした。
o panic: ダンプ内容を減らした。
o process: 正しいセグメントセレクターを使用するようにした。
o svm: 起動時の "SVM is not available." メッセージを削除した。
o svm: Windows 7 64 ビット版の性能改善のため、CR8 レジスターの読み書
きをフックしないようにした。
o svm: Windows 7 の再起動対応のため、NMI およびタスクスイッチを処理す
るようにした。
o svm: CPUID 命令のエミュレーションに対応し、仮想化支援機能を隠ぺいす
るようにした。
o vt: 起動時の "VMX operation is not supported." メッセージを削除し
た。
o vt: ソフトウェア例外 (INT3 など) 生成時にシャドウページテーブルが原
因のページフォールトが発生した場合 panic していた問題を修正した。
o vt: 性能改善のため、不必要な例外をフックしないようにした。
+ コンパイル
o 全体で共通の CFLAGS 設定を採用した。
o CONFIG 内容によって発生していたコンパイルエラーを修正した。
o アセンブラーにも -g オプションを指定するようにした。
o panic 時のバックトレースの有効・無効を CONFIG_BACKTRACE によって切
り替えられるようにし、64 ビット環境でのバックトレースにも対応した。
+ Crypto
o 乱数シードサイズを 1,024 バイトに変更した。
o TPM 乱数生成器が使用可能であれば、乱数シードにそれを使うようにし
た。
+ ID 管理機能
o 浮動小数点命令が生成されないように修正した。
+ AHCI driver
o Index-Data Pair mechanism に対応した。この対応により、一部の BIOS
によるディスクアクセスの暗号化がされない問題が解決している。
o VMM からのディスクアクセス機能の挙動を一部変更した。
+ USB
o UHCI driver: ステータス判定においてホストコントローラーとの間で発生
する競合状態を解消した。
o UHCI driver: 削除処理を正しいタイミングで行うようにした。
o UHCI driver, EHCI driver: 送信処理と削除処理の競合状態を解消した。
o EHCI driver: ショートパケットを正しく扱うようにした。
o EHCI driver: アクティブな QH overlay に対応した。
o 送信処理におけるビジーウェイトで schedule() を呼び出すようにした。
o Mass storage class driver: SECURITY PROTOCOL IN/OUT コマンドに対し
て HALT (STALL) を返すようにした。
+ Boot
o loader: ディスクイメージへのインストールができるようにした。
o login-simple: Ubuntu 11.10 でのリンクエラーを修正した。
+ Tools
o dbgsh などのゲスト OS 上で使用できるツールのソースコードを "tools"
ディレクトリ以下に集めた。
o vmmstatus (CONFIG_STATUS および config.vmm.status により有効にでき
る VMM の状態取得機能を用いて、ゲスト OS 上で状態を表示するためのツ
ール) のソースコードを追加した。
o AMD-V に対応した。
既知の問題
* Lenovo ThinkPad X220 において BIOS のディスクアクセスを暗号化することができ
ない。
* Linux ゲスト使用時、UHCI で USB メモリーのアクセス中に転送内容が壊れる。
楽しんで下さい!
--
Hideki EIRAKU <hdk @ igel.co.jp>
BitVisor-users メーリングリストの案内