มีการนำเสนอการเปิดตัวโครงการ QEMU 7.2 แล้ว ในฐานะอีมูเลเตอร์ QEMU ช่วยให้คุณสามารถรันโปรแกรมที่คอมไพล์สำหรับแพลตฟอร์มฮาร์ดแวร์เดียวบนระบบที่มีสถาปัตยกรรมที่แตกต่างไปจากเดิมอย่างสิ้นเชิง เช่น รันแอปพลิเคชัน ARM บนพีซีที่รองรับ x86 ในโหมดการจำลองเสมือนใน QEMU ประสิทธิภาพของการเรียกใช้โค้ดในสภาพแวดล้อมแบบแยกจะใกล้เคียงกับประสิทธิภาพของระบบฮาร์ดแวร์ เนื่องจากการดำเนินการตามคำสั่งโดยตรงบน CPU และการใช้ Xen Hypervisor หรือโมดูล KVM
เดิมทีโปรเจ็กต์นี้สร้างขึ้นโดย Fabrice Bellard เพื่อให้โปรแกรมปฏิบัติการ Linux ที่สร้างขึ้นสำหรับแพลตฟอร์ม x86 ทำงานบนสถาปัตยกรรมที่ไม่ใช่ x86 ในช่วงหลายปีที่ผ่านมาของการพัฒนา มีการเพิ่มการรองรับการจำลองแบบเต็มรูปแบบสำหรับสถาปัตยกรรมฮาร์ดแวร์ 14 แบบ จำนวนอุปกรณ์ฮาร์ดแวร์ที่จำลองมีมากกว่า 400 รายการ ในการเตรียมการสำหรับเวอร์ชัน 7.2 มีการเปลี่ยนแปลงมากกว่า 1800 รายการจากนักพัฒนา 205 คน
การปรับปรุงสำคัญที่เพิ่มเข้ามาใน QEMU 7.2:
- โปรแกรมจำลอง x86 ในตัวสร้างโค้ด TCG แบบคลาสสิกได้เพิ่มการรองรับคำสั่ง AVX, AVX2, F16C, FMA3 และ VAES รวมถึงการเพิ่มประสิทธิภาพที่เกี่ยวข้องกับการใช้คำสั่ง SSE สำหรับ KVM มีการเพิ่มการรองรับสำหรับกลไกในการติดตามการออกจากเครื่องเสมือน (“ แจ้งเตือน vmexit”) ซึ่งช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดใน CPU ที่อาจนำไปสู่การแฮงค์
- โปรแกรมจำลอง ARM รองรับ Cortex-A35 CPU และส่วนขยายโปรเซสเซอร์ ETS (การซิงโครไนซ์การแปลขั้นสูง), PMUv3p5 (ส่วนขยาย PMU 3.5), GTG (Guest Translation Granule 4KB, 16KB, 64KB), HAFDBS (การควบคุมฮาร์ดแวร์ของแฟล็กการเข้าถึงและสถานะ "สกปรก") และ E0PD (ป้องกันการเข้าถึง EL0 ไปยังการแมปที่อยู่แบบแบ่งพาร์ติชัน)
- โปรแกรมจำลอง LoongArch เพิ่มการรองรับ fw_cfg DMA, หน่วยความจำ hot-plug และการจำลองอุปกรณ์ TPM (Trusted Platform Module)
- โปรแกรมจำลองสถาปัตยกรรม OpenRISC ใช้แพลตฟอร์ม 'virt' สำหรับการทดสอบอุปกรณ์และใช้งานในระบบบูรณาการอย่างต่อเนื่อง การสนับสนุนสำหรับการดำเนินการแบบมัลติเธรดของเครื่องสร้างโค้ด TCG (Tiny Code Generator) แบบคลาสสิกได้ถูกนำมาใช้แล้ว
- ตัวจำลองของสถาปัตยกรรม RISC-V ในเครื่องจำลอง 'virt' มีความสามารถในการโหลดเฟิร์มแวร์จาก pflash ในโหมด S ปรับปรุงการทำงานกับแผนผังอุปกรณ์
- โปรแกรมจำลอง 390x ให้การสนับสนุน MSA5 (ส่วนขยาย Message-Security-Assist 5 พร้อมคำสั่ง PRNO สำหรับการสร้างตัวเลขสุ่มหลอก), คำแนะนำ KIMD/KLM (การใช้งาน SHA-512) และการตีความ zPCI แบบขยายสำหรับระบบแขกที่ใช้ไฮเปอร์ไวเซอร์ KVM .
- แบ็กเอนด์สำหรับการทำงานกับหน่วยความจำให้การจัดสรรหน่วยความจำล่วงหน้าโดยคำนึงถึงสถาปัตยกรรม NUMA
- การตรวจสอบส่วนหัวของอุปกรณ์บล็อกที่เข้ารหัสของ LUKS ได้รับการเสริมความแข็งแกร่ง และเพิ่มความสามารถในการสร้างอิมเมจ LUKS บน macOS แล้ว
- แบ็กเอนด์ 9pfs ซึ่งอนุญาตให้ใช้ระบบไฟล์เครือข่าย Plan 9 เพื่อเข้าถึงเครื่องเสมือนเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง ได้เปลี่ยนไปใช้แฮช GHashTable ในตารางตัวระบุ ซึ่งในบางสถานการณ์ทำให้ประสิทธิภาพเพิ่มขึ้น 6-12 เท่า
- เพิ่มสตรีมแบ็กเอนด์ netdev และ dgram ใหม่
- เพิ่มการรองรับ FreeBSD ให้กับตัวแทนสำหรับแขกที่ใช้ ARM
- GUI บิวด์สำหรับ macOS ช่วยให้สามารถรวมอินเทอร์เฟซที่ใช้ Cocoa และ SDL/GTK ไว้ในไฟล์ปฏิบัติการไฟล์เดียวได้
- โมดูลย่อย "slirp" ในตัวถูกลบออกแล้ว แต่ขอแนะนำให้ใช้ไลบรารีระบบ libslirp แทน
- เนื่องจากขาดความสามารถในการทดสอบ จึงเลิกใช้การรองรับระบบโฮสต์ที่มีโปรเซสเซอร์ MIPS 32 บิตที่ใช้ลำดับไบต์ Big Endian
ที่มา: opennet.ru