JailhouseはLinuxベースのパーティショニングハイパーバイザーです (無料のGPLv2ソフトウェアプロジェクトとして開発されました)。 です 完全なアプリケーションまたはオペレーティングシステムを実行できます (適応)Linuxに加えて。 この目的のために、cプラットフォームのCPUとデバイスの仮想化特性を図で示します 「セル」と呼ばれるこれらのドメインのいずれも、許容できない方法で相互に干渉できないようにするためのハードウェア。
つまり、 Jailhouseは、あなたが持っていないリソースをエミュレートしません。 単に ハードウェアを「セル」と呼ばれる分離されたコンパートメントに分割します 彼らは完全に「被収容者」と呼ばれるゲストソフトウェアに専念しています。
刑務所について
刑務所はシンプルさのために最適化されています 機能の豊富さではなく。 KVMやXenなどのフル機能のLinuxベースのハイパーバイザーとは異なり、 刑務所はリソースのオーバーコミットメントをサポートしていません CPU、RAM、デバイスなど。 プログラミングは行わず、プラットフォームに不可欠でハードウェア上でパーティション化できないソフトウェアでこれらのリソースを仮想化するだけです。
Jailhouseがアクティブ化されると、完全に実行されます。つまり、ハードウェアを完全に制御し、外部サポートを必要としません。
ハイパーバイザーは、Linuxカーネルのモジュールとして実装されています カーネルレベルの仮想化を提供します。 ゲストコンポーネントは、メインのLinuxカーネルにすでに含まれています。
ハードウェア仮想化メカニズムは、分離を制御するために使用されます 最新のCPUによって提供されます。 Jailhouseの特徴は、その軽量な実装です。 仮想マシンを固定CPU、RAM領域、およびハードウェアデバイスにリンクする方向。 このアプローチにより、物理マルチプロセッササーバー上で複数の独立した仮想環境を運用でき、それぞれに独自のプロセッサコアが割り当てられます。
CPUとの緊密なリンクにより、ハイパーバイザー操作のオーバーヘッドが最小限に抑えられ、複雑なリソース割り当てスケジューラーを実行する必要がないため、その実装が大幅に簡素化されます。個別のCPUコアを割り当てることで、そうではないことが保証されます。このCPUで他のタスクを実行します。
このアプローチの利点は、リソースへのアクセスが保証され、パフォーマンスが予測できることです。これにより、Jailhouseはリアルタイムタスクを作成するための適切なソリューションになります。 欠点は、CPUコアの数に基づくスケーラビリティの制限です。
Jailhouse0.12の新バージョンについて
現在、Jailhouseはバージョン0.12であり、 Raspberry Pi4モデルBおよびTexasInstrumentsJ721E-EVMのサポート。
ivshmemデバイスに加えて セル間の相互作用を整理するために使用され、 再設計され、VIRTIOのトランスポートも実装できるようになりました。
大容量メモリページの作成(巨大なページ)を無効にする機能が実装され、IntelプロセッサのCVE-2018-12207の脆弱性をブロックし、特権のない攻撃者がサービスの拒否を開始できるようにして、フリーズを引き起こします「マシン検証エラー」状態のシステム。
ARM64プロセッサを搭載したシステムでは、SMMUv3がサポートされています (システムメモリ管理ユニット)およびTI PVU(周辺仮想化ユニット)。 コンピューター上で実行されるサンドボックス環境用に、PCIサポートが追加されました。
x86システムでは、CR4モードを有効にすることができます。 (ユーザーモード命令防止)Intelプロセッサによって提供され、SGDT、SLDT、SIDT、SMSW、STRなどのユーザースペースでの特定の命令の実行を禁止できます。これらは、増加を目的とした攻撃で使用できます。システムの特権。
刑務所を取得
Jailhouseはx86_64システムでの操作をサポートします VMX + EPTまたはSVM + NPT(AMD-V)拡張機能、およびプロセッサ ARMv7およびARMv8 / ARM64 仮想化拡張機能を備えています。
でも さらに、互換性のあるデバイス用のDebianパッケージに基づくイメージジェネレーターが開発されています。
コンパイルとインストールの手順、およびその他の情報を見つけることができます 次のリンクで。