QEMU 7.1 มาพร้อมกับการปรับปรุงสำหรับ ARM, RISC-V, Linux และอื่นๆ

QEMU 7.1

QEMU 7.1 ใช้การปรับปรุงด้วยการถ่ายโอนหน่วยความจำใน Linux

มีการประกาศเปิดตัว QEMU เวอร์ชัน 7.1 ซึ่งมีการปรับปรุงหลายอย่างสำหรับอีมูเลเตอร์ต่างๆ โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงสำหรับ ARM และ RISC-V รวมถึงการปรับปรุงการถ่ายโอนหน่วยความจำสำหรับ Linux ในการเตรียมการสำหรับ เวอร์ชัน7.1 นั้น มีการเปลี่ยนแปลงมากกว่า 2800 รายการโดยนักพัฒนา 238 คน

สำหรับผู้ที่เพิ่งเริ่มใช้ QEMU คุณควรรู้ว่ามันอนุญาตให้คุณเรียกใช้โปรแกรมที่สร้างขึ้นสำหรับแพลตฟอร์มฮาร์ดแวร์เดียวบนระบบที่มีสถาปัตยกรรมที่แตกต่างอย่างสิ้นเชิง เช่น การเรียกใช้แอปพลิเคชัน ARM บนพีซีที่รองรับ x86

ในโหมดเวอร์ชวลไลเซชันใน QEMU ประสิทธิภาพของการเรียกใช้โค้ดในสภาพแวดล้อมแบบแยกส่วนจะคล้ายกับของระบบฮาร์ดแวร์เนื่องจากการสั่งการโดยตรงบน CPU และการใช้ Xen hypervisor หรือโมดูล KVM

ความแปลกใหม่หลักของ QEMU 7.1

ในเวอร์ชันใหม่สำหรับ Linux นี้ ได้มีการนำตัวเลือก zero-copy-send มาใช้ซึ่งช่วยให้สามารถจัดการการถ่ายโอนหน้าหน่วยความจำระหว่างการย้ายระบบแบบสดโดยไม่ต้องมีการบัฟเฟอร์ขั้นกลาง

นอกจากนี้QMP (QEMU Machine Protocol) ยังเพิ่มความสามารถในการใช้คำสั่ง `block-export-add` เพื่อส่งออกอิมเมจ NBDพร้อมข้อมูลเพจในสถานะ "dirty" และยังมีการเพิ่มคำสั่ง `query-stats` และ `query-stats-schema` ใหม่สำหรับการสอบถามสถิติจากระบบย่อยต่างๆ ของ QEMU อีกด้วย

การเปลี่ยนแปลงที่สำคัญอีกประการหนึ่งใน QEMU เวอร์ชันใหม่นี้คือตัวแทนระบบปฏิบัติการแขก (guest agent) มีความเข้ากันได้กับแพลตฟอร์ม Solaris ดีขึ้นและเพิ่มคำสั่งใหม่ 'guest-get-diskstats' และ 'guest-get-cpustats' เพื่อแสดงสถานะของดิสก์และซีพียู นอกจากนี้ยังมีการเพิ่มข้อมูล NVMe SMART ลงในคำสั่ง 'guest-get-disks' และข้อมูลประเภทบัส NVMe ลงในคำสั่ง 'guest-get-fsinfo' ด้วย

นอกจากนี้ ยัง ได้เพิ่มอีมูเลเตอร์ LoongArch ใหม่เพื่อรองรับ สถาปัตยกรรมชุดคำสั่ง LoongArch เวอร์ชัน 64 บิต (LA64) อีมูเลเตอร์นี้รองรับโปรเซสเซอร์ Loongson 3 5000 และนอร์ธบริดจ์ Loongson 7A1000

นอกจากนี้ ยังมีการเน้นย้ำว่าโปรแกรมจำลอง ARM ได้นำเครื่องจักรจำลองประเภทใหม่ๆ มาใช้ ได้แก่Aspeed AST1030 SoC, Qualcomm และ AST2600/AST1030 (fby35)รวมถึงเพิ่มการสนับสนุนการจำลอง CPU Cortex-A76 และ Neoverse-N1 ตลอดจนส่วนขยายโปรเซสเซอร์ SME (Scalable Matrix Extensions), RAS (Reliability, Availability, Serviceability) และคำสั่งเพื่อป้องกันการรั่วไหลของแคชภายในระหว่างการประมวลผลคำสั่งแบบคาดการณ์ล่วงหน้าใน CPU

ในขณะที่โปรแกรมจำลองสถาปัตยกรรม RISC-V ได้เพิ่มการสนับสนุนสำหรับส่วนขยายชุดคำสั่ง (ISA) ใหม่ที่กำหนดไว้ในข้อกำหนด 1.12.0 รวมถึงการสนับสนุนเพิ่มเติมสำหรับส่วนขยาย Sdtrig และการสนับสนุนที่ดีขึ้นสำหรับคำสั่งเวกเตอร์

การเปลี่ยนแปลงที่สำคัญอื่นๆในเวอร์ชันใหม่นี้ ได้แก่:

  • ปรับปรุงตัวเลือกการดีบัก
  • เพิ่มการรองรับ TPM (Trusted Platform Module) ให้กับเครื่องจำลอง 'virt' และเพิ่มการรองรับ Ibex SPI ให้กับเครื่อง 'OpenTitan'
  • โปรแกรมจำลอง x86 สำหรับ KVM ได้เพิ่มการรองรับสำหรับการจำลองเสมือนของกลไกการติดตาม LBR (Last Branch Record)
  • ใช้การจำลองตัวจัดการขัดจังหวะ GICv4 สำหรับเครื่อง 'virt'
  • โปรแกรมจำลองสถาปัตยกรรม HPPA มีเฟิร์มแวร์ใหม่ที่ใช้ SeaBIOS v6 ที่รองรับการใช้แป้นพิมพ์ PS/2 ในเมนูบูต
  • ปรับปรุงการจำลองพอร์ตอนุกรม
  • เพิ่มแบบอักษรคอนโซล STI เพิ่มเติม
  • โปรแกรมจำลองสถาปัตยกรรม MIPS สำหรับบอร์ด Nios2 (-เครื่อง 10m50-ghrd) ใช้การจำลองตัวควบคุมการขัดจังหวะเวกเตอร์และชุดการลงทะเบียนเงา
  • ปรับปรุงการจัดการข้อยกเว้น
  • เพิ่มความสามารถในการใช้อุปกรณ์ 4A UART สูงสุด 16550 เครื่องในโปรแกรมจำลองสถาปัตยกรรม OpenRISC สำหรับเครื่อง 'or1k-sim'
  • โปรแกรมจำลองสถาปัตยกรรม 390x ให้การสนับสนุนส่วนขยาย Vector-Enhancements Facility 2 (VEF 2) BIOS s390-ccw มีความสามารถในการบูตจากดิสก์ที่มีขนาดเซกเตอร์อื่นที่ไม่ใช่ 512 ไบต์
  • เพิ่มการรองรับเคอร์เนล lx106 และรหัสอ็อบเจ็กต์การทดสอบแคชในโปรแกรมจำลองสถาปัตยกรรม Xtensa

สุดท้ายนี้หากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงและคุณสมบัติใหม่ใน QEMU เวอร์ชัน 7.1 คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google