QEMUは、一般的でオープンソースのマシン&ユーザースペースエミュレータおよび仮想イザーです。
QEMUは、ハードウェア仮想化サポートを必要とせずに、ソフトウェアで完全なマシンをエミュレートすることができます。動的翻訳を使用することで、非常に優れたパフォーマンスを実現します。 QEMUは、XENおよびKVMハイパーバイザーと統合して、ハイパーバイザーがCPUを管理できるようにしながら、エミュレートハードウェアを提供することもできます。ハイパーバイザーサポートにより、QEMUはCPUのネイティブパフォーマンスに近いことを達成できます。 QEMUがCPUを直接エミュレートすると、1つのマシン用に作られたオペレーティングシステム(ARMV7ボードなど)を別のマシン(X86_64 PCボードなど)を実行できます。
QEMUは、LinuxおよびBSDカーネルインターフェイスのユーザースペースAPI仮想化を提供することもできます。これにより、1つのアーキテクチャABI(Linux PPC64 ABIなど)に対してコンパイルされたバイナリを、別のアーキテクチャABI(Linux X86_64 ABIなど)を使用してホストで実行できます。これには、ハードウェアエミュレーション、単にCPUとSyscallエミュレーションが含まれません。
Qemuは、さまざまなユースケースに適合することを目指しています。その動作と設定を完全に制御したいユーザーが直接呼び出すことができます。また、安定したコマンドラインインターフェイスを提供し、APIを監視することにより、より高いレベルの管理レイヤーへの統合を促進することを目的としています。 Ovirt、OpenStack、Virt-Managerなどのオープンソースアプリケーションを使用する場合、通常、Libvirtライブラリを介して間接的に呼び出されます。
QEMUは、GNU General Public License、Version 2に基づいてリリースされます。完全なライセンスの詳細については、ライセンスファイルを参照してください。
ドキュメントは、https://www.qemu.org/documentation/でオンラインでホストされています。 https://www.qemu.org/docs/master/で入手できる現在の開発バージョンのドキュメントは、ソースツリーのdocs/
フォルダーから生成され、Sphinxによって構築されています。
QEMUは、すべての最新のLinuxプラットフォーム、OS-X、Win32(MINGW64ツールチェーン経由)、およびその他のさまざまなUNIXターゲットで構築できるマルチプラットフォームソフトウェアです。 QEMUを構築するための簡単な手順は次のとおりです。
mkdir build
cd build
../configure
make
追加情報は、QEMUのWebサイトからオンラインで見つけることもできます。
QEMUソースコードは、GITバージョン制御システムの下で維持されます。
git clone https://gitlab.com/qemu-project/qemu.git
パッチを送信するとき、1つの一般的なアプローチは、「gitフォーマットパッチ」および/または「git send-email」を使用して、[email protected]メーリングリストにメールをフォーマットし、送信することです。提出されたすべてのパッチには、著者からの「サインオフ」行が含まれている必要があります。パッチは、開発者ガイドのスタイルセクションに記載されているガイドラインに従う必要があります。
パッチの送信に関する追加情報は、QEMU Webサイトからオンラインで見つけることができます。
QEMUのWebサイトは、ソース制御の下でも維持されています。
git clone https://gitlab.com/qemu-project/qemu-web.git
「git-publish」ユーティリティは、上記のプロセスを扱いにくくするために作成され、定期的な貢献をすること、または連続したパッチシリーズの改訂を送信するためだけに強くお勧めします。また、作業「git send-email」のセットアップが必要であり、デフォルトではすべてを自動化しないため、上記の手順を1回手動で実行することをお勧めします。
インストール手順については、次のようにアクセスしてください。
「git-publish」を使用したワークフローは次のとおりです。
$ git checkout master -b my-feature
$ # work on new commits, add your 'Signed-off-by' lines to each
$ git publish
パッチシリーズは、将来参照する必要がある場合、私のフィーチャー-V1として送信およびタグ付けされます。
V2の送信:
$ git checkout my-feature # same topic branch
$ # making changes to the commits (using 'git rebase', for example)
$ git publish
パッチシリーズは被写体に「V2」タグで送信され、GitチップはMy-Feature-V2としてタグ付けされます。
QEMUプロジェクトでは、GitLabの問題を使用してバグを追跡します。 QEMU Gitまたは上流のリリースされたソースから構築されたコードを実行しているときに見つかったバグは、以下を介して報告する必要があります。
オペレーティングシステムベンダーを介してQEMUを使用して、事前に構築されたバイナリパッケージを使用する場合、最初にベンダー自身のバグトラッカーにバグを報告することが望ましいです。バグが最新の上流コードに影響することが知られている場合、GitLabを介して報告することもできます。
バグレポートの詳細については、相談してください。
バージョンの履歴とリリースメモについては、https://wiki.qemu.org/changelog/にアクセスするか、詳細についてはGIT履歴をご覧ください。
QEMUコミュニティはさまざまな方法で連絡することができ、2つの主な方法は電子メールとIRCです。
コミュニティに連絡する追加の方法に関する情報は、QEMU Webサイトからオンラインで見つけることができます。