
QEMU 10.1 kini tersedia dan hadir dengan sejumlah perubahan penting bagi pengembang dan mereka yang menerapkan mesin virtual dalam skala besar. Di antara yang paling menonjol adalah peningkatan keamanan, migrasi langsung, dukungan arsitektur, dan peningkatan perangkat , jadi ada baiknya untuk mencermatinya lebih detail.
Sebelum kita membahas lebih lanjut, ada satu hal yang perlu diperhatikan untuk menghindari kebingungan: QEMU menggunakan penomoran berbasis waktu. Ini berarti bahwa semakin tinggi nomor versi, semakin signifikan perubahannya, bukan berarti secara otomatis demikian. Kebijakan proyek memungkinkan pengenalan perubahan yang tidak kompatibel setelah periode penghentian dukungan dengan peringatan di setidaknya dua versi sebelumnya , jadi jangan berasumsi bahwa lompatan versi utama identik dengan revolusi.
Ketersediaan, Konteks, dan Filosofi QEMU 10.1
Proyek ini mengumumkan versi 10.1.0 pada tanggal 26 Agustus 2025, dengan lebih dari 2700 commit yang ditandatangani oleh 226 penulis. Anda dapat mengunduh tarball dari situs web resmi dan melihat changelog lengkap untuk semua detailnya . Seperti biasa, terima kasih banyak kepada semua orang yang berkontribusi dalam kode, pengujian, CI/CD, dokumentasi, dan laporan bug.
Sesuai dengan filosofi QEMU, terdapat beberapa penyebutan fitur yang dihapus dan opsi yang sudah usang. Jika Anda bergantung pada sesuatu yang lebih lama, periksa bagian 'Fitur yang Dihapus' dan bab 'Fitur yang Usang' di Panduan Pengguna Emulasi Sistem , di mana penggantinya juga direkomendasikan.
Sorotan sekilas
Untuk membangkitkan minat Anda, ringkasan singkat versi 10.1 mencakup keamanan, kinerja, dan manajemen tingkat lanjut. Terdapat dukungan VFIO awal untuk tamu rahasia, peningkatan migrasi yang signifikan, dan kemampuan agen tamu baru.
- VFIO dan kerahasiaan: Dukungan awal untuk mengakses/memetakan memori tamu yang sensitif saat menggunakan guest_memfd, mengaktifkan passthrough pada SEV-SNP/TDX.
- Migrasi langsung:multifd mempercepat pengoptimalan pasca-salinan, pra-salinan, dan dukungan RDMA melalui IPv6.
- Agen Tamu: : perintah 'guest-get-load' baru untuk menanyakan beban pada Windows.
- Arsitektur: Fitur ARM baru (FEAT_SME2, ​​​​SME2p1, SVE2p1, dan lainnya), dukungan RISC-V yang diperluas, dan integrasi KVM untuk TDX pada x86.
Arsitektur dan mesin: apa sebenarnya yang berubah
QEMU 10.1 menyempurnakan dan memperluas emulasi dan virtualisasi di berbagai keluarga CPU. Mulai dari ARM hingga RISC-V dan x86, termasuk LoongArch, HPPA, dan Microblaze, terdapat peningkatan spesifik yang patut dirinci.
ARM
Pada ARM, QEMU 10.1 menambahkan sejumlah fitur arsitektur CPU: FEAT_SME2, ​​​​FEAT_SME2p1, FEAT_SME_B16B16, FEAT_SME_F16F16, FEAT_SVE_B16B16 dan FEAT_SVE2p1 , memperkuat dukungan untuk pemrosesan vektor dan matriks.
Terkait perangkat keras, terdapat beberapa tambahan baru yang signifikan. Papan 'max78000fthr' (Analog Devices max78000 Cortex-M4) telah ditambahkan , bersama dengan perangkat keras multi-SoC baru 'ast2700fc', 'catalina-bmc' (Meta) dan 'gb200-bmc' (NVIDIA); dan dukungan firmware telah ditambahkan ke AST2700 EVB.
Papan 'virt' yang populer juga mendapatkan peningkatan: sekarang mendukung CXL, PCI hotplug melalui ACPI, dan, di bawah kernel host terbaru, virtualisasi bertingkat dengan KVM dengan mengaktifkan 'virtualization=on' . Catatan: model 'highbank' dan 'midway' sudah usang, dan penghentian dukungan untuk 'ast2700a0-evb' telah diumumkan.
RISC-V
Ekosistem RISC-V menerima banyak pembaruan terkait ISA, mesin, dan perbaikan bug. Dukungan ditambahkan untuk ekstensi atomic fetch (Ziccif), 'Svrsw60t59b' disertakan, dan kasus batas instruksi vektor disempurnakan.
- ISA dan ekstensi: instruksi semu 'tail' untuk panggilan yang antri, penghapusan properti CPU dengan huruf kapital 'Z', max_satp_mode dari host, pengaturan dan perluasan jumlah wilayah PMP (hingga 64), opsi untuk mengatur 'vill' guna menggunakan vsetvli secara khusus.
- Mesin:Dukungan RIMT di ACPI 'virt', peningkatan penyesuaian pada Microchip PolarFire SoC dan CPU dan platform Kunminghu baru; Perbarui versi FADT dan MADT dalam tabel ACPI.
- Koreksi dan lain-lain: jangan izinkan PMP RLB untuk melompati hak istimewa, perbaikan CSR dalam KVM, sstc, urutan zama16b, penanganan profil, perbaikan pengecualian/penutupan (MEPC/SEPC untuk IALIGN), perbaikan pembungkus pada rentang PMP 0, perbaikan perulangan penerjemahan tak terbatas big endian, dan perbaikan kegagalan migrasi saat AIA diatur ke aplic-imsic.
Selain itu, 'fitur bernama' yang hilang ditambahkan, koreksi PPN dilakukan pada log respons terjemahan, dan penundaan tak terbatas dalam transmisi asinkron dihindari , sehingga meningkatkan stabilitas dalam skenario ekstrem.
x86 (KVM dan TCG)
Pada arsitektur x86, terdapat dua poin penting yang akan dihargai oleh administrator. Bit CPUID khusus vendor dihilangkan ketika vendor CPU tamu tidak mendefinisikannya , sehingga mencegah kebingungan dan pembuatan profil yang tidak tepat.
Di sisi KVM, dukungan untuk TDX ditambahkan (membutuhkan Linux 6.16 atau yang lebih baru) , dan dimungkinkan untuk memulai mesin TDX atau SEV-SNP dari file IGVM, sebuah langkah penting untuk alur penyediaan yang aman.
Dalam penerjemah TCG, bit jebakan TSS didukung , meningkatkan keakuratan jalur eksekusi tertentu tanpa akselerasi perangkat keras.
Loong Arch
LoongArch mengalami kemajuan dengan dukungan kernel irqchip , memperbaiki big endianness dengan tabel MCFG, menyelesaikan kegagalan startup ketika 'smp cpu' < 'smp maxcpus' di bawah KVM, dan memoles detail instruksi seperti VLDI. Guest KVM juga diberi tahu, dan pemeriksaan untuk 'fcond' ditambahkan.
api mikro
Mereka yang bekerja dengan Microblaze memiliki kontrol lebih: mesin 'petalogix_s3adsp1800' memungkinkan Anda untuk mengubah endianness melalui properti 'endianness' . Varian big-endian dari ml605 dan xlnx-zynqmp-pmu sedang dihapus, dan model-model ini sedang dikonversi ke little-endian di qemu-system-microblaze. Selain itu, binary 'qemu-system-microblazeel' sedang dihentikan penggunaannya dan akan dihapus di masa mendatang.
MIPS
Ada satu solusi yang sangat spesifik namun sangat dihargai: solusi ini mengatasi BSOD saat memulai Windows NT MIPS pada mesin magnum (masalah #2464) , berguna bagi mereka yang meneliti atau memelihara perangkat lunak lama.
HPPA
Emulasi pengecualian floating-point (FPE) telah ditingkatkan baik dalam mode pengguna maupun sistem, memperkuat akurasi arsitektur veteran ini.
Arsitektur lainnya
Selain bagian-bagian yang disebutkan di atas, terdapat bab untuk 68k, Alpha, AVR, Hexagon, OpenRISC, PowerPC, Renesas RX/SH, s390x, SPARC, Tricore, dan Xtensa. Meskipun tidak ada pembaruan besar yang tercantum untuk semuanya di versi 10.1, pemeliharaan dan penyesuaian terus berlanjut , dengan perhatian khusus pada s390x di versi terbaru karena definisi CPU baru dan peningkatan virtio-mem.
Perangkat, I/O dan subsistem
QEMU 10.1 menghadirkan peningkatan signifikan pada VFIO, jaringan, grafis, audio, dan I/O. Perubahan ini secara langsung memengaruhi kinerja, kompatibilitas, dan operasi sehari-hari.
VFIO
Dukungan awal untuk backend memori guest-memfd diperkenalkan pada guest rahasia (CoCo) , dokumentasi passthrough IGD diperbarui, dan crash L2 pada mesin pseries diperbaiki.
OpRegion juga diaktifkan secara otomatis untuk passthrough IGD , deteksinya ditingkatkan, dan QEMU sekarang dapat melaporkan perubahan konfigurasi vfio-ap.
Selain itu, disertakan pula klien vfio-user , dukungan peningkatan langsung (CPR) , migrasi VFIO dengan multifd pada aarch64 , dan properti untuk memberlakukan kode kelas PCI perangkat . Terakhir, dukungan VFIO pada VM TDX dan SNP secara resmi diumumkan.
Jaringan dan penyimpanan
Pada perangkat jaringan, terdapat backend baru bernama 'passt' , yang dirancang untuk skenario integrasi dan sandboxing. Selain itu, saat menggunakan NBD melalui soket Unix, QEMU mencoba menegosiasikan buffer yang lebih besar untuk meningkatkan kinerja secara drastis.
PCI/PCIe dan virtio
Board ARM 'virt' menambahkan fitur hotplug PCI melalui ACPI dan acpi-index untuk perangkat PCI dengan mengaktifkan opsi global '-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'.
Dalam grafis virtual, virtio-gpu memungkinkan Anda untuk menyuntikkan nama EDID , yang berguna untuk pengujian kompatibilitas dan otomatisasi.
9pfs dan backend lainnya
Untuk 9pfs, algoritma pemulihan deskriptor file ketika mendekati batas sistem dikoreksi , serta beberapa kasus penggunaan setelah penghapusan (operasi setelah menghapus file) yang dapat menyebabkan kesalahan halus.
Audio
Subsistem audio menyesuaikan pengaturan default dan kompatibilitas: di ALSA, 'try-poll' sekarang bernilai false secara default dan konverter endianness ditambahkan untuk sampel floating-point.
Antarmuka grafis dan agen
Di GUI ada banyak hal yang perlu dijelaskan: spice/dbus mendukung multiplane dmabuf , dan gl=on juga dapat diaktifkan dengan klien jarak jauh/non-lokal.
Agen vdagent menambahkan dukungan migrasi , GTK meningkatkan penanganan skala dan menambahkan opsi 'keep-aspect-ratio' dan 'scale'.
Di VNC, masalah pengkodean pembaruan diperbaiki ketika klien dan server berbeda dalam endianness, baik dalam pengkodean non-tight maupun dalam 8/16 bpp; selain itu, jeda layar setelah migrasi juga diperbaiki.
I/O dan debugging
Pada lapisan I/O, banyak backend TCP sekarang memungkinkan Anda untuk mengkonfigurasi parameter TCP keepalive , yang sangat berguna di lingkungan dengan firewall atau NAT yang agresif.
GDBstub menambahkan dukungan untuk qGDBServerVersion yang digunakan oleh klien non-GDB, sehingga meningkatkan interoperabilitas.
Plugin TCG mendapatkan peningkatan: plugin 'ips' mendukung penskalaan yang dapat dikonfigurasi dan instruksi per kuantum ; ada juga fungsi baru untuk menulis log , menulis ke alamat virtual (dengan hati-hati), dan membaca/menulis alamat perangkat keras . Plugin uji 'patcher' disertakan, dan sparc64 serta alpha mengekspos detail log ke plugin.
Migrasi langsung dan tugas blok
Versi 10.1 memperketat aturan terkait mobilitas VM. Migrasi RDMA kini mendukung IPv6 dan postcopying dioptimalkan untuk akses sekuensial (kasus umum seperti streaming video).
Kabar baik: multifd dan postcopy sekarang dapat diaktifkan secara bersamaan (multifd saat ini aktif selama precopy). Migrasi VFIO dengan multifd saat TCP zerocopy aktif juga telah diperbaiki, dan jendela waktu henti selama precopy telah dikurangi dengan menghindari perintah LOG_CLEAR yang tidak perlu.
Di QMP, blockdev-mirror memperkenalkan flag boolean 'target-is-zero' untuk mengoptimalkan mirroring ke tujuan yang sudah membaca nol; lebih lanjut, bahkan tanpa flag ini, lebih sedikit pekerjaan yang dilakukan pada blok sumber yang membaca nol. blockdev-backup menambahkan opsi 'on-cbw-error' untuk menentukan perilaku jika terjadi kesalahan I/O selama operasi copy-before-write.
Dalam pekerjaan blok, komit blok yang tidak aktif dioptimalkan untuk mempertahankan penghematan; dan pencermian/pencadangan mewarisi peningkatan sebelumnya untuk blok nol dan opsi baru.
Agen Tamu
QEMU Guest Agent berkembang di Windows: 'guest-get-load' diimplementasikan untuk menanyakan beban sistem tamu.
Windows juga menambahkan upaya percobaan ulang saat membatalkan pendaftaran penyedia VSS dan menyebarkan kesalahan instalasi penyedia VSS ke penginstal MSI, sehingga memudahkan diagnosis.
Mode pengguna dan TCG
Dalam emulasi mode pengguna, terdapat pembaruan dokumentasi kecil yang mengklarifikasi keterbatasan; pembaruan ini menyentuh area sinyal, runtime, dan binfmt_misc, serta target alpha, arm/aarch64, HPPA, LoongArch, PowerPC, s390, dan x86.
Di TCG, pengerjaan terus berlanjut pada LoongArch dan dukungan RISC-V serta Record/Replay , meskipun tanpa perubahan apa pun pada judul tersebut selain fitur cheat TSS yang telah disebutkan sebelumnya.
Kompilasi, dependensi dan platform
Selama proses pembuatan, dokumentasi diperbarui dengan contoh b4 dan semua submodul edk2 sekarang disertakan dalam tarball firmware.
Mengenai Rust, versi minimum yang didukung saat ini adalah 1.77 . Di Debian Bookworm, tersedia dalam paket rustc-web, kecuali di mips64el (yang membutuhkan Debian Trixie atau versi yang lebih baru). Di Ubuntu 22.04 dan 24.04, paket rust-1.77 digunakan dengan mengatur variabel RUSTC/RUSTDOC ke /usr/bin/rustc-1.77 dan /usr/bin/rustdoc-1.77.
Dukungan Rust masih bersifat eksperimental dan tidak stabil , dan tidak direkomendasikan untuk apa pun selain pengembangan. Dengan Rust diaktifkan, QEMU membutuhkan Meson 1.8.1 . Sebuah skrip ('scripts/get-wraps-from-cargo-registry.py') disertakan untuk mengisi 'subprojects/' dari registri lokal (misalnya, /usr/share/cargo/registry).
Pada platform host, Debian Bullseye tidak lagi didukung , dan Ninja 1.9 menjadi persyaratan (sebelumnya sudah ada di semua sistem yang didukung oleh QEMU 10.0). Dukungan eksperimental untuk kompilasi ke WASM dengan Emscripten juga disertakan.
Tidak ada berita utama khusus tentang Windows dalam rilis ini, selain yang telah disebutkan tentang agen tamu. Peta jalan 10.1 ada di halaman Perencanaan/10.1 jika Anda ingin mengikuti detailnya.
Jika Anda telah menunggu momen yang tepat untuk melakukan upgrade, kombinasi dukungan untuk guest yang bersifat rahasia (TDX/SEV-SNP dengan IGVM dan guest_memfd), migrasi yang lebih cepat (multifd + postcopy, RDMA IPv6), dan peningkatan di seluruh arsitektur dan subsistem menjadikan QEMU 10.1 sebagai rilis yang sangat lengkap. Dengan peningkatan kinerja praktis, alat manajemen yang lebih baik, dan basis teknologi yang terus berkembang, upgrade ini sangat layak dilakukan.
