QEMUQEMU (singkatan dari "Quick Emulator") adalah sebuah perangkat lunak emulator dan virtualisasi perangkat keras sumber terbuka dan gratis. QEMU dapat meniru berbagai arsitektur komputer dan menjalankan sistem operasi tamu yang berbeda pada satu mesin fisik. Sebagai mesin virtual yang di-hosting, QEMU mengemulasi prosesor mesin melalui terjemahan biner dinamis dan menyediakan serangkaian perangkat keras virtual. QEMU dapat menjalankan berbagai sistem operasi tamu, termasuk Linux, Windows, dan macOS. Selain itu, QEMU juga dapat digunakan bersama dengan KVM (Kernel-based Virtual Machine) untuk menjalankan mesin virtual dengan performa yang mendekati perangkat keras asli, dengan memanfaatkan ekstensi perangkat keras seperti Intel VT. QEMU juga mendukung emulasi tingkat pengguna, yang memungkinkan aplikasi yang dikompilasi untuk satu arsitektur dijalankan pada arsitektur lainnya. [1] PerizinanQEMU dikembangkan 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.[2] Mode operasiQEMU memiliki beberapa mode operasi yaitu:[3] 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;[4] 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. FiturQEMU 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. Tiny Code GeneratorThe 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.[6] AkseleratorKQEMU 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,[7] 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.[8] 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[9] untuk KVM untuk virtualisasi hardware-assisted berbasis x86 pada Windows dan macOS. Pada 2013 Intel kebanyakan meminta penggunaannya dengan QEMU untuk pengembangan Android.[10] Dimulai dengan versi 2.9.0, QEMU resmi termasuk dukungan untuk HAXM. Format gambar disk yang didukungQEMU mendukung format gambar disk berikut:[11]
Emulasi yang didukung perangkat kerasProsesor 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 sembilan tolak ukur.[13] Emulasi paralelSolusi virtualisasi yang menggunakan QEMU dapat menjalankan beberapa CPU virtual secara paralel. Untuk emulasi-emulasi mode pengguna, peta QEMU meniru untaian untuk menghosting untaian. Untuk emulasi sistem penuh, QEMU mampu menjalankan thread host untuk setiap CPU virtual yang teremulasi (vCPU). Ini tergantung pada tamu yang telah diperbarui untuk mendukung emulasi sistem paralel, saat ini ARM, Alpha, HP-PA, PowerPC, RISC-V, dan s390x. Jika tidak, satu utas digunakan untuk meniru semua CPUS virtual (vCPUS) yang mengeksekusi setiap vCPU dengan cara round-robin. IntegrasiVirtualBox
QEMU mencakup beberapa komponen: emulator CPU, perangkat yang diemulasi, perangkat generik, deskripsi mesin, antarmuka pengguna, dan pengawakutu. Perangkat yang diemulasi dan perangkat generik dalam QEMU membuat model perangkatnya untuk virtualisasi I / O.[15] Mereka terdiri dari IDE PIIX3 (dengan beberapa kemampuan PIIX4 yang belum sempurna), Cirrus Logic atau video emulasi VGA polos, emulasi jaringan RTL8139 atau E1000, dan dukungan ACPI.[16] Dukungan APIC disediakan oleh Xen. Xen-HVM memiliki emulasi perangkat berdasarkan proyek QEMU untuk menyediakan virtualisasi I / O ke VM. Perangkat keras ditiru melalui "daemon model perangkat" QEMU yang berjalan sebagai backend di dom0. Tidak seperti mode menjalankan QEMU lainnya (terjemahan dinamis atau KVM), CPU virtual benar-benar dikelola ke hypervisor, yang mengurus menghentikan mereka sementara QEMU meniru akses I / O yang dipetakan memori.
Pada bulan September 2006, Win4Lin mengumumkan perubahan nama perusahaan menjadi Jembatan Virtual dengan merilis Win4BSD Pro Desktop, port produk ke FreeBSD dan PC-BSD. Dukungan Solaris diikuti pada Mei 2007 dengan merilis Win4Solaris Pro Desktop dan Win4Solaris Virtual Desktop Server.[18]
Referensi
|