การเปิดตัวโปรแกรมจำลอง QEMU 5.0

แนะนำ การเปิดตัวโครงการ QEMU 5.0. ในฐานะอีมูเลเตอร์ QEMU ช่วยให้คุณสามารถรันโปรแกรมที่คอมไพล์สำหรับแพลตฟอร์มฮาร์ดแวร์เดียวบนระบบที่มีสถาปัตยกรรมที่แตกต่างไปจากเดิมอย่างสิ้นเชิง เช่น รันแอปพลิเคชัน ARM บนพีซีที่รองรับ x86 ในโหมดการจำลองเสมือนใน QEMU ประสิทธิภาพของการเรียกใช้โค้ดในสภาพแวดล้อมแบบแยกจะใกล้เคียงกับระบบเนทิฟ เนื่องจากการดำเนินการตามคำสั่งโดยตรงบน CPU และการใช้ Xen Hypervisor หรือโมดูล KVM

เดิมทีโปรเจ็กต์นี้สร้างขึ้นโดย Fabrice Bellard เพื่อให้โปรแกรมปฏิบัติการ Linux ที่สร้างขึ้นสำหรับแพลตฟอร์ม x86 ทำงานบนสถาปัตยกรรมที่ไม่ใช่ x86 ในช่วงหลายปีที่ผ่านมาของการพัฒนา มีการเพิ่มการรองรับการจำลองแบบเต็มรูปแบบสำหรับสถาปัตยกรรมฮาร์ดแวร์ 14 แบบ จำนวนอุปกรณ์ฮาร์ดแวร์ที่จำลองมีมากกว่า 400 รายการ ในการเตรียมการสำหรับเวอร์ชัน 5.0 มีการเปลี่ยนแปลงมากกว่า 2800 รายการจากนักพัฒนา 232 คน

สำคัญ การปรับปรุงเพิ่มใน QEMU 5.0:

  • ความสามารถในการส่งต่อส่วนหนึ่งของระบบไฟล์ของสภาพแวดล้อมโฮสต์ไปยังระบบเกสต์โดยใช้ virtiofsd. ระบบเกสต์สามารถติดตั้งไดเร็กทอรีที่ทำเครื่องหมายไว้สำหรับส่งออกบนฝั่งระบบโฮสต์ ซึ่งช่วยลดความยุ่งยากในการจัดการการเข้าถึงไดเร็กทอรีที่ใช้ร่วมกันในระบบเวอร์ชวลไลเซชันได้อย่างมาก ซึ่งแตกต่างจากการใช้ระบบไฟล์เครือข่าย เช่น NFS และ virtio-9P virtiofs ช่วยให้คุณได้รับประสิทธิภาพที่ใกล้เคียงกับระบบไฟล์ในเครื่อง
  • สนับสนุน การย้ายข้อมูลจากกระบวนการภายนอกโดยใช้ QEMU D-Bus
  • การใช้งาน แบ็กเอนด์หน่วยความจำ เพื่อให้แน่ใจว่าการทำงานของ RAM หลักของระบบแขก แบ็กเอนด์ถูกระบุโดยใช้ตัวเลือก "-machine memory-backend"
  • ตัวกรอง "บีบอัด" ใหม่ซึ่งสามารถใช้เพื่อสร้างการสำรองข้อมูลรูปภาพที่ถูกบีบอัด
  • คำสั่ง "qemu-img Measure" สามารถทำงานกับอิมเมจ LUKS ได้แล้ว และตัวเลือก "--target-is-zero" ได้ถูกเพิ่มลงในคำสั่ง "qemu-img Convert" เพื่อข้ามการทำให้อิมเมจเป้าหมายเป็นศูนย์
  • เพิ่มการสนับสนุนการทดลองสำหรับกระบวนการ qemu-storage-daemon ซึ่งให้การเข้าถึงระดับบล็อก QEMU และคำสั่ง QMP รวมถึงการเรียกใช้อุปกรณ์บล็อกและเซิร์ฟเวอร์ NBD ในตัว โดยไม่ต้องเรียกใช้เครื่องเสมือนเต็มรูปแบบ
  • โปรแกรมจำลองสถาปัตยกรรม ARM ได้เพิ่มความสามารถในการจำลอง CPU Cortex-M7 และให้การสนับสนุนบอร์ดพีซี tacoma-bmc, Netduino Plus 2 และ Orangepi เพิ่มการรองรับอุปกรณ์ vTPM และ virtio-iommu ให้กับเครื่องจำลอง 'virt' ความสามารถในการใช้ระบบโฮสต์ AArch32 เพื่อรันสภาพแวดล้อมแขก KVM เลิกใช้แล้ว มีการรองรับการจำลองคุณสมบัติสถาปัตยกรรมต่อไปนี้:
    • ARMv8.1: HEV, VMID16, PAN, PMU
    • ARMv8.2: UAO, DCPoP, ATS1E1, TTCNP
    • ARMv8.3: RCPC, CCIDX
    • ARMv8.4: PMU, RCPC
  • เพิ่มการรองรับคอนโซลกราฟิกให้กับตัวจำลองสถาปัตยกรรม HPPA โดยใช้อุปกรณ์กราฟิก HP Artist
  • เพิ่มการรองรับคำสั่ง GINVT (Global Invalidation TLB) ให้กับตัวจำลองสถาปัตยกรรม MIPS
  • มีการเพิ่มการจำลองเครื่องมือเร่งความเร็วด้วยฮาร์ดแวร์ KVM สำหรับการรันระบบเกสต์ในโปรแกรมจำลองสถาปัตยกรรม PowerPC สำหรับเครื่อง 'powernv'
    KVM พร้อมตัวสร้างโค้ด TCG แบบคลาสสิก (ตัวสร้างโค้ดจิ๋ว) เพื่อจำลองหน่วยความจำถาวร เราได้เพิ่มการรองรับ NVDIMM ที่แสดงในไฟล์แล้ว สำหรับเครื่อง 'pseries' ความจำเป็นในการรีบูตได้ถูกลบออกไปเพื่อประสานงานการทำงานของตัวควบคุมขัดจังหวะ XIVE/XICS ในโหมด "ic-mode=dual";

  • ตัวจำลองสถาปัตยกรรม RISC-V สำหรับบอร์ด 'virt' และ 'sifive_u' ให้การสนับสนุนไดรเวอร์ระบบ Linux มาตรฐานสำหรับการจัดการพลังงานและการรีบูต เพิ่มการรองรับ Goldfish RTC สำหรับบอร์ด 'virt' เพิ่มการใช้งานส่วนขยายไฮเปอร์ไวเซอร์แบบทดลอง
  • เพิ่มการรองรับ AIS (Adapter Interrupt Suppression) ให้กับตัวจำลองสถาปัตยกรรม s390 เมื่อทำงานในโหมด KVM

ที่มา: opennet.ru

เพิ่มความคิดเห็น