[BitVisor-users:2] BitVisor 1.1 released
Hideki EIRAKU
hdk @ igel.co.jp
2010年 6月 4日 (金) 15:45:24 JST
こんにちは。
BitVisor 1.1 のリリースをお知らせできることをうれしく思います。
http://sourceforge.net/projects/bitvisor/files/
BitVisor 1.1 と BitVisor 1.0.1 との違いは以下の通りです。
1. 保護ドメイン機能
プロセス機能を拡張し、VMMコアと各機能モジュール(ストレージ暗号化機
能、ID 管理機能、および、VPN 機能)間でメモリ保護の壁によってクラッ
クに対する耐性を高める保護ドメイン機能を実装した。
プロセス機能の拡張は以下のとおり:
- メモリ確保・解放を行うライブラリ関数を追加した。
- プロセス内のスタックおよびメッセージパッシングを制限する機能を追
加した。
- 事前に共有メモリをマップする機能を追加した。
- IOPL を 0 にすることで、プロセス上で I/O 命令や割り込み許可命令を
実行できないようにした。
2. AHCI SATA ドライバ
SATA のホストコントローラ規格である AHCI に対応したドライバを実装し
た。AHCI で制御される SATA ストレージに対し、暗号化を施すことが可能
となった。それに伴い、既存 ATA/ATAPI ドライバに以下の変更を行った:
- ATA コマンドを解釈する処理を一部整理した
- ストレージのタイプ設定に STORAGE_TYPE_AHCI と
STORAGE_TYPE_AHCI_ATAPI を追加した。
- 一部 PC で ATAPI デバイスへの入出力が stall するバグを修正した。
3. Realtek RTL816x Ethernet ドライバ
VPN機能の対応デバイスとして、Realtek RTL816x を追加するためのドライ
バ実装を追加した。本実装の状態は、experimental であり、動作が不安定
な場合がある。
4. Storage ポリシーにおけるデバイス選択条件
- 暗号化アルゴリズムとして暗号化しない "none" を追加した。
- デバイス ID などを指定するための "extend" オプションを追加した。
5. PCIデバイスの隠ぺい
IEEE1394 デバイスの隠ぺい機能を拡張して、ポリシー記述に指定した条件
に適合するPCIデバイスを隠ぺいする機能を追加した。
6. USBメモリからの起動
USB ストレージから BitVisor を起動して内蔵 HDD にチェインロードする
ためのブートローダ bootloaderusb を追加した。
7. バグfixと機能改善
* USB
- 同じアドレスまたはポートを使用した時のパニックを修正した。
- usb_bulk_read/write でフリーズしていたバグを修正した。
- dprintft() の時間表示フォーマットが適切でないバグを修正した。
- タイムアウト値をマイクロ秒で扱うように変更した。
- UHCI の assertion バグを修正した。
- 新しいゲスト OS のドライバで EHCI が正常に動作しなかったバグを
修正した。
- low speed デバイスの情報を取得できていなかったバグを修正した。
- USB 2.0 ハブに接続された USB 1.x デバイスの情報取得とパススルー
に対応した。
- USB キーボードや USB マウスなどの HID に対応した。
- 日立ソフト 秘文 LE USB メモリが使用する規格外コマンドに対応した。
- 複数の LUN を持つ USB マスストレージデバイスに対応した。
- USB マスストレージのセクタサイズの検出方法を変更し、ポートリセッ
ト時にパニックするバグを修正した。
- UHCI/EHCI ドライバの一部データ構造を見直し、性能を改善した。
- USB 関連のログ出力処理によるオーバーヘッドを削減した
* Intel PRO/1000 Ethernetドライバ
- 受信パケットサイズを間違えていたバグを修正した。
- Linux 2.6.18 ゲストでクラッシュする問題を修正した (ただし同ゲス
トではまだ正常動作しない)。
- transmit control register の読み取りが正常にできないバグを修正
した。
- 送信が無効になっている間は送信バッファにパケットを追加しないよ
うにすることで、シャットダウン時などにバッファフルで停止してし
まうバグを修正した。
- ミニ OS から渡される config でログ出力を制御できるようにした。
- ログ出力機能におけるソース IP アドレスを10.10.10.10 から
0.0.0.0 に変更した。
* メモリ管理
- 事前にマップしておく物理メモリ領域の大きさを拡張し、32 ビット環
境で1.75GiB を常時マップしておくようにした (今まで 16MiB だった)。
- プロセスのスタック解放処理のバグを修正した。
- プロセスのスタックアンダーフロー・オーバーフローを検出し警告メッ
セージを出力するようにした。
- 動作に影響のない見た目上の小さなバグを修正した。
- カーネル空間のページディレクトリエントリに対してグローバルビッ
トをセットするようにし、プロセス呼び出しのパフォーマンスを改善
した。
* コア
- BIOS フックの機械語の記述ミスにより一部 PC で正常に動作しなかっ
たバグを修正した。
- TCG BIOS を無効にする CONFIG を追加した (一部 PC で新しいバー
ジョンのWindows が正常に起動しない問題への対応)。
- TSC の代わりに ACPI PM タイマーを主に用いるように変更した。
- Atom Z520 など一部プロセッサで時々パニックする問題への回避策を
実装した。
- 一部スレッドのスタックを大きくした。
- CPUID の最大値を見るようにした。
- 新しい VT-x プロセッサでサポートされている XSETBV 命令に対応し
た。
- パニック時に APIC を無効にする方法を変更し、一部 PC で再起動時
にフリーズしてしまう問題を改善した。
- ミニ OS 後にキーボード入力ができなくなることがあるバグを修正し
た。
- 一部 PC でミニ OS 後にストレージにアクセスできないバグを修正し
た。
- Makefile の config 記述の小さなバグを修正した。
- BSS セクションのクリア時にマルチブート情報を破壊していたバグを
修正した。
- シャドウページテーブルの性能を改善した。
* その他
- boot/loader: 読み込みのスピードを高速化した。
- boot/login: コンパイルエラーを修正した。
- boot/login: Linux カーネルを 2.6.31.6 にアップデートした。
- boot/login: bitvisor.conf.tmpl を更新した。
- ata: const 変数をすべて static とした。
- iccard: IC カードリーダとの通信が時々途絶えるバグを修正した。
- pci: PCI hotplug を部分的にサポートした (一部ノート PC の内蔵光
学ドライブなどへの対応)。
- storage: LBA 範囲の比較処理のバグを修正した。
- vpn: DHCP サーバーの応答内容を修正し、一部ゲスト OS の DHCP ク
ライアントと相性が悪かった問題を解決した。
- vpn: フラグメントパケットの数に上限を設けた(一部 PC において起
動に時間がかかる問題への対応)。
- vmmcall_status: .config および bitvisor.conf での切り替えに対応
した。
- all: コンパイル時の警告を減らした。
- all: ソースファイルの文字コードを UTF-8 に統一した。
楽しんで下さい!
--
Hideki EIRAKU <hdk @ igel.co.jp>
BitVisor-users メーリングリストの案内