QEMU
QEMU merupakan singkatan dari Quick Emulator yaitu emulator tidak berbayar dan open-source yang melakukan virtualisasi perangkat keras. QEMU adalah mesin virtual monitor yang dihosting, mengemulasi prosesor mesin melalui terjemahan biner dinamis dan menyediakan satu set perangkat keras dan model perangkat yang berbeda untuk mesin, dapat menjalankan berbagai sistem operasi tamu. Hal ini juga dapat digunakan dengan KVM
untuk menjalankan mesin virtual dengan kecepatan mendekati aslinya (dengan mengambil keuntungan dari ekstensi perangkat keras seperti IntelVT. QEMU juga dapat melakukan emulasi untuk proses tingkat pengguna, memungkinkan aplikasi dikompilasi untuk satu arsitektur untuk dijalankan pada yang lain. QEMU ditulis oleh Fabrice Bellard dan merupakan perangkat lunak gratis, terutama berlisensi di bawah GNU General Public License
(GPL untuk pendek). Berbagai bagian dirilis di bawah lisensi BSD, Lisensi Publik Umum GNU GNU (LGPL) atau lisensi lain yang kompatibel dengan GPL. QEMU memiliki beberapa mode operasi yaitu: Emulasi mode pengguna Dalam mode ini, QEMU menjalankan program Linux atau Darwin/macOS tunggal yang dikompilasi untuk rangkaian instruksi yang berbeda. Panggilan sistem di-thunked untuk endianness dan untuk 32/64 bit
mismatches. Kompilasi silang yang cepat dan cross-debugging adalah target utama untuk emulasi mode pengguna. Emulasi sistem Dalam mode ini QEMU mengemulasi sistem komputer lengkap, termasuk periferal. Ini dapat digunakan untuk menyediakan hosting virtual dari beberapa komputer virtual pada satu komputer. QEMU dapat mem-boot banyak sistem operasi tamu, termasuk Linux, Solaris, Microsoft Windows, DOS, dan BSD; mendukung beberapa set instruksi, termasuk
x86, MIPS, 32-bit ARMv7, ARMv8, PowerPC, SPARC, ETRAX CRIS dan MicroBlaze. KVM Hosting = Di sini QEMU berkaitan dengan pengaturan dan migrasi gambar KVM. Ini masih terlibat dalam persaingan perangkat keras, tetapi eksekusi tamu dilakukan oleh KVM seperti yang diminta oleh QEMU. Xen Hosting QEMU hanya terlibat dalam persaingan perangkat keras; eksekusi
tamu dilakukan dalam Xen dan benar-benar tersembunyi dari QEMU. QEMU dapat menyimpan dan memulihkan keadaan mesin virtual dengan semua program yang berjalan. Sistem operasi tamu tidak perlu menambal untuk dijalankan di QEMU. QEMU mendukung persaingan berbagai arsitektur, termasuk: Mesin virtual dapat berinteraksi dengan banyak jenis perangkat fisik host, termasuk hard disk pengguna, drive CD-ROM,
kartu jaringan, antarmuka audio, dan perangkat USB. Perangkat USB dapat sepenuhnya diemulasi, atau perangkat USB host dapat digunakan, meskipun ini memerlukan hak istimewa administrator dan tidak berfungsi dengan semua perangkat. Gambar disk virtual dapat disimpan dalam format khusus (qcow atau qcow2) yang hanya menggunakan ruang disk yang benar-benar digunakan oleh OS tamu. Dengan cara ini, disk 120 GB yang
teremulasi dapat menempati hanya beberapa ratus megabyte pada host. Format QCOW2 juga memungkinkan pembuatan gambar overlay yang merekam perbedaan dari file gambar dasar yang lain (tidak dimodifikasi). Ini memberikan kemungkinan untuk mengembalikan isi disk yang ditiru ke keadaan sebelumnya. Sebagai contoh, gambar dasar dapat menyimpan instalasi baru dari sistem operasi yang diketahui berfungsi, dan gambar overlay
digunakan. Jika sistem tamu menjadi tidak dapat digunakan (melalui serangan virus, penghancuran sistem yang tidak disengaja, dll.), Pengguna dapat menghapus overlay dan merekonstruksi versi disk image yang diemulasikan sebelumnya. QEMU dapat meniru kartu jaringan (model yang berbeda) yang berbagi konektivitas sistem host dengan melakukan terjemahan alamat jaringan, secara efektif memungkinkan tamu untuk
menggunakan jaringan yang sama sebagai tuan rumah. Kartu jaringan virtual juga dapat terhubung ke kartu jaringan contoh lain QEMU atau ke antarmuka TAP lokal. Konektivitas jaringan juga dapat dicapai dengan menjembatani antarmuka TUN/TAP yang digunakan oleh QEMU dengan antarmuka Ethernet non-virtual pada OS host menggunakan fitur bridging OS host. QEMU mengintegrasikan beberapa layanan untuk
memungkinkan sistem host dan tamu untuk berkomunikasi; misalnya, server SMB terintegrasi dan pengalihan port jaringan (untuk memungkinkan koneksi masuk ke mesin virtual). Itu juga dapat mem-boot kernel Linux tanpa bootloader. QEMU tidak bergantung pada kehadiran metode output grafis pada sistem host. Sebaliknya, dapat memungkinkan seseorang untuk mengakses layar OS tamu melalui server VNC yang terintegrasi. Ia juga dapat
menggunakan saluran serial yang ditiru, tanpa layar apa pun, dengan sistem operasi yang berlaku. Mensimulasikan beberapa CPU menjalankan SMP dimungkinkan. QEMU tidak memerlukan hak administratif untuk dijalankan, kecuali modul kernel tambahan untuk meningkatkan kecepatan digunakan (seperti KQEMU), atau ketika beberapa mode dari model konektivitas jaringannya digunakan. The Tiny Code Generator (TCG) bertujuan untuk menghapus kekurangan
mengandalkan versi tertentu dari GCC atau kompilator, melainkan menggabungkan compiler (generator kode) ke dalam tugas-tugas lain yang dilakukan oleh QEMU pada waktu proses. Oleh karena itu, seluruh tugas penerjemahan terdiri dari dua bagian: blok kode target (TB) yang ditulis ulang dalam ops TCG- sejenis notasi perantara mesin-independen, dan selanjutnya notasi
ini dikompilasi untuk arsitektur host oleh TCG. Optimalisasi pengabaian dilakukan di antara mereka. TCG membutuhkan kode khusus yang ditulis untuk mendukung setiap arsitektur yang dijalankannya. Ini juga mengharuskan terjemahan instruksi target ditulis ulang untuk memanfaatkan ops TCG, bukan ops dingen yang sebelumnya digunakan. Dimulai dengan QEMU Versi 0.10.0, kapal TCG dengan
rilis stabil QEMU. "KQEMU" adalah modul kernel Linux, juga ditulis oleh Fabrice Bellard, yang terutama mempercepat emulasi tamu x86 atau x86-64 pada platform dengan arsitektur CPU yang sama. Ini bekerja dengan menjalankan kode mode pengguna (dan secara opsional beberapa kode kernel) secara langsung pada CPU komputer host, dan dengan menggunakan prosesor dan emulasi perifer hanya untuk mode kernel dan kode
real-mode. KQEMU dapat mengeksekusi kode dari banyak OS tamu bahkan jika CPU host tidak mendukung virtualisasi hardware-assisted. KQEMU awalnya adalah produk sumber tertutup yang tersedia secara gratis, tetapi mulai dari versi 1.3.0pre10, itu diberikan lisensi di bawah Lisensi Publik Umum GNU. Versi QEMU dimulai dengan 0.12.0 (per Agustus 2009) mendukung memori besar yang membuat mereka
tidak kompatibel dengan KQEMU. Rilis QEMU yang lebih baru telah sepenuhnya menghapus dukungan untuk KQEMU. QVM86 adalah pengganti drop-in berlisensi GNU GPLv2 untuk KQEMU sumber tertutup. Para pengembang QVM86 berhenti pembangunannya pada Januari 2007. Mesin Virtual berbasis Kernel (KVM) sebagian besar telah diambil alih sebagai solusi virtualisasi hardware-assisted berbasis Linux
untuk digunakan dengan QEMU di tengah kurangnya dukungan untuk KQEMU dan QVM86. Intel Hardware Accelerated Execution Manager (HAXM) adalah alternatif open-source untuk KVM untuk virtualisasi hardware-assisted berbasis x86 pada Windows dan macOS. Pada 2013 Intel kebanyakan meminta penggunaannya dengan QEMU untuk pengembangan Android. Dimulai dengan versi 2.9.0, QEMU resmi termasuk dukungan untuk HAXM. QEMU mendukung format
gambar disk berikut: Prosesor Loongson-3 MIPS yang kompatibel menambahkan 200 instruksi baru untuk membantu QEMU menerjemahkan instruksi x86; instruksi-instruksi baru itu menurunkan overhead mengeksekusi instruksi gaya x86/CISC dalam pipa MIPS. Dengan peningkatan tambahan di QEMU oleh Chinese Academy of Sciences, Loongson-3 mencapai rata-rata 70% kinerja mengeksekusi binari asli saat menjalankan biner x86 dari