KVM:Linuxカーネルをベースにしたオープンソースの仮想化ソリューションであるカーネルベースの仮想マシンは、バージョン2.6.20からカーネルの主要ブランチに組み込まれました。当初はX86プラットフォーム上のVMXまたはSVMをサポートするCPUでのみサポートされていましたが、後に標準のLinuxカーネルおよびS390、IA64、PowerPCなどのアーキテクチャを徐々にサポートするようになりました。完全にプラットフォームの仮想化機能を提供するために特別に修正されたQemu(Qemu-kvm)の助けを借りて。
KVMは完全に仮想化された仮想マシンを提供するためにx86ハードウェアの仮想化機能に依存しています基本的な考え方は、Linuxカーネルに基づく仮想マシン管理モジュールを追加し、Linuxカーネルで確立され成熟したメカニズムとモジュールを再利用することです。たとえば、プロセススケジューリング、メモリ管理、IO管理などは、実行中の仮想マシンをサポートできるハイパーバイザーになります。
ログイン
は
ログインKVMは、(IntelのVT-x等)上記のように、完全な仮想化ソリューションは、記載されているハードウェア支援による仮想化技術:以下に示すように、全体的なアーキテクチャ次のように:
VMM(つまり、KVMカーネル)はRing0をrootモードで実行します;
üホスト上のユーザー状態プロセスはroot3でRing3を実行します;
>仮想マシン内のカーネルRing0が非ルートモードで実行中
仮想マシンがRing3を非ルートモードで実行中ユーザー状態プロセス
Qemu-kvmは、KVMによって提供および保守されている改良されたQemuです。 KVMソリューションでは、標準のQemuがより良いパフォーマンスを持つように特別に修正され、KVMと完全に統合されています。
VM(仮想マシン)は伝統的なLinuxプロセスです。 VMはQemu-KVMプロセスのアドレス空間で実行されます;
VMMは/dev /kvmインターフェースを上位層に提供し、/dev /kvmはioctlインターフェースによって制御される標準文字デバイスです; Qemu-kvmは/devを呼び出します/kvmデバイスのioctlインタフェースは、仮想マシンの作成やVの作成など、仮想マシンを制御します。 CPU、実行中の仮想マシンなど
KVM仮想マシンのIOパフォーマンスを向上させるために、KVMはVirtioドライバも提供しています。これはXen環境の準仮想化ドライバに相当します。以下に示すように
2.2 KVM実行は、実質的に
KVMランを表示:
ログインプロセスの説明:
1、ioctlシステムを介して実行/QEMU-KVMユーザ状態動作呼び出しDev /kvmキャラクタデバイス、VMおよびVCPUの作成
2.カーネルKVMモジュールは、関連するデータ構造の作成、つまり初期化を担当します。その後、ユーザー状態に戻ります。3. Qemu-kvmは、ioctl呼び出しを通じてVCPUを実行します。
4を実行した後、カーネルは関連する処理を実行し、VMLAUNCH命令を実行し、VMエントリを通してゲストOSに入り、そしてゲストOSは非ルートモードで実行されます。
5、ゲストOSは対応する仮想マシンコードを実行します。ゲストOSが機密命令を実行した場合、外部割り込みが発生した場合、またはゲストOSに内部例外が発生した場合
7. VM-Exitが発生し、関連情報がVMCS構造体に記録されます。
7. VM-ExitがCPUをルートモードに戻し、VMMがVMCS構造体を読み取り、VM-Exitの原因を判断します。操作または他の周辺命令はユーザモードQemu − kvm(すなわち、ルートモードのリング3)に戻り、Qemu − kvmは関連する命令のシミュレーションを完了する。
9、そうでなければ、VMMは自分自身を処理します - 10、処理が完了した後、VMエントリーはゲストOSに再エントリーされます。
2.3 KVMカーネルモジュールの構成
KVMは主に3つのカーネルモジュールで構成されています。
ü Kvm.ko
ü Kvm-intel.ko
ü Kvm-amd。 Ko
Kvm.koはKVMのコアパブリックモジュールで、kvm-intel.koとkvm-amd.koはそれぞれIntelとAMDのプラットフォームアーキテクチャ用の別々のモジュールです。 KVMコア共通モジュールには、IOMMU、割り込み制御、KVM arch、デバイス管理などのコードが含まれていますこれらのコードは、仮想マシン管理の中核機能を構成しているため、KVM自体は実装されていません。完全なPCシステムの仮想化は、コアCPU仮想化、メモリ仮想化、IO仮想化などの機能の一部を実現し、対応するAPIを上位層に提供するためだけに、残りの仮想化および管理作業は主にQemuに渡されます。 -kvmが担当します。
LinuxはLinuxよりWindowsのセキュリティが高いとLinuxは信じていると多くのメディアや専門家が考えています。しかし、セキュリティがより重要になる今日、このセキュリティはユーザーの正しい
のNetBSD NetBSDは移植性の高い無料、UNIXライクなオペレーティングシステムであり、ポータブルプラットフォームは、最新のオペレーティングシステムであり、ハンドヘルドや組み込みデバイスに64
◆インストールしてログイン:ログイン、シャットダウン、停止、再起動、インストール、マウント、アンマウント、CHSH、終了、最後 ファイル処理◆:ファイル、MKDIR、grepを、DD、見つける、MV
後で見直すのに便利な、独自の一般的なLinuxシステムコマンドを記録して、メモリの状態が悪化していることを確認しましょう。 psコマンドの コマンド: PS -mp PID -o THREAD、T