หลังจากหนึ่งปีของการพัฒนา Xen 4.17 ไฮเปอร์ไวเซอร์ฟรีก็ได้เปิดตัวแล้ว บริษัทต่างๆ เช่น Amazon, Arm, Bitdefender, Citrix, EPAM Systems และ Xilinx (AMD) มีส่วนร่วมในการพัฒนารุ่นใหม่ การสร้างการอัปเดตสำหรับสาขา Xen 4.17 จะคงอยู่จนถึงวันที่ 12 มิถุนายน 2024 และการเผยแพร่การแก้ไขช่องโหว่จนถึงวันที่ 12 ธันวาคม 2025
การเปลี่ยนแปลงที่สำคัญใน Xen 4.17:
- การปฏิบัติตามบางส่วนมีให้กับข้อกำหนดสำหรับการพัฒนาโปรแกรมที่ปลอดภัยและเชื่อถือได้ในภาษา C ซึ่งกำหนดไว้ในข้อกำหนด MISRA-C ที่ใช้ในการสร้างระบบที่มีความสำคัญต่อภารกิจ Xen ปรับใช้คำสั่ง 4 คำสั่งอย่างเป็นทางการและกฎ MISRA-C 24 กฎ (จากกฎ 143 กฎและคำสั่ง 16 คำสั่ง) และยังรวมเครื่องวิเคราะห์แบบคงที่ MISRA-C เข้ากับกระบวนการประกอบ ซึ่งตรวจสอบการปฏิบัติตามข้อกำหนดข้อกำหนดเฉพาะ
- ให้ความสามารถในการกำหนดการกำหนดค่า Xen แบบคงที่สำหรับระบบ ARM ซึ่งจะฮาร์ดโค้ดทรัพยากรทั้งหมดที่จำเป็นสำหรับการบูตเกสต์ล่วงหน้า ทรัพยากรทั้งหมด เช่น หน่วยความจำที่ใช้ร่วมกัน ช่องทางการแจ้งเตือนเหตุการณ์ และพื้นที่ฮีปของไฮเปอร์ไวเซอร์ จะถูกจัดสรรไว้ล่วงหน้าเมื่อเริ่มต้นไฮเปอร์ไวเซอร์ แทนที่จะจัดสรรแบบไดนามิก ช่วยลดความล้มเหลวที่อาจเกิดขึ้นเนื่องจากการขาดแคลนทรัพยากรระหว่างการดำเนินการ
- สำหรับระบบฝังตัวที่ใช้สถาปัตยกรรม ARM ได้มีการนำการสนับสนุนการทดลอง (ตัวอย่างเทคโนโลยี) สำหรับการจำลองเสมือน I/O โดยใช้โปรโตคอล VirtIO มาใช้ การขนส่ง virtio-mmio ใช้เพื่อแลกเปลี่ยนข้อมูลกับอุปกรณ์ I/O เสมือน ซึ่งช่วยให้มั่นใจถึงความเข้ากันได้กับอุปกรณ์ VirtIO หลากหลายประเภท มีการรองรับฟรอนต์เอนด์ Linux, ชุดเครื่องมือ (libxl/xl), โหมด dom0less และแบ็กเอนด์ที่ทำงานในพื้นที่ผู้ใช้แล้ว (แบ็กเอนด์ virtio-disk, virtio-net, i2c และ gpio ได้รับการทดสอบแล้ว)
- การสนับสนุนที่ได้รับการปรับปรุงสำหรับโหมด dom0less ซึ่งช่วยให้คุณหลีกเลี่ยงการปรับใช้สภาพแวดล้อม dom0 เมื่อเริ่มต้นเครื่องเสมือนในช่วงเริ่มต้นของการบูตเซิร์ฟเวอร์ เป็นไปได้ที่จะกำหนด CPU Pools (CPUPOOL) ที่ขั้นตอนการบูต (ผ่านแผนผังอุปกรณ์) ซึ่งช่วยให้คุณใช้พูลในการกำหนดค่าที่ไม่มี dom0 ได้ เช่น เพื่อผูกแกน CPU ประเภทต่างๆ บนระบบ ARM โดยยึดตาม big.LITTLE สถาปัตยกรรมที่ผสมผสานคอร์ที่ทรงพลังแต่ใช้พลังงาน กับคอร์ที่มีประสิทธิผลน้อยลงแต่ประหยัดพลังงานมากกว่า นอกจากนี้ dom0less ยังให้ความสามารถในการผูกฟรอนต์เอนด์/แบ็กเอนด์พาราเวอร์ชวลไลเซชันกับระบบเกสต์ ซึ่งช่วยให้คุณสามารถบูตระบบเกสต์ด้วยอุปกรณ์พาราเวอร์ชวลไลซ์ที่จำเป็น
- บนระบบ ARM โครงสร้างการจำลองเสมือนของหน่วยความจำ (P2M, ทางกายภาพไปยังเครื่อง) จะถูกจัดสรรจากพูลหน่วยความจำที่สร้างขึ้นเมื่อสร้างโดเมน ซึ่งช่วยให้แยกระหว่างแขกได้ดีขึ้นเมื่อเกิดความล้มเหลวที่เกี่ยวข้องกับหน่วยความจำ
- สำหรับระบบ ARM มีการเพิ่มการป้องกันช่องโหว่ Spectre-BHB ในโครงสร้างไมโครสถาปัตยกรรมของโปรเซสเซอร์
- บนระบบ ARM คุณสามารถรันระบบปฏิบัติการ Zephyr ในสภาพแวดล้อมรูท Dom0 ได้
- มีความเป็นไปได้ของชุดไฮเปอร์ไวเซอร์แยกต่างหาก (นอกแผนผัง)
- บนระบบ x86 หน้า IOMMU ขนาดใหญ่ (ซุปเปอร์เพจ) ได้รับการสนับสนุนสำหรับระบบเกสต์ทุกประเภท ซึ่งช่วยเพิ่มปริมาณงานเมื่อส่งต่ออุปกรณ์ PCI เพิ่มการรองรับโฮสต์ที่มี RAM สูงสุด 12 TB ในขั้นตอนการบูต ความสามารถในการตั้งค่าพารามิเตอร์ cpuid สำหรับ dom0 ได้ถูกนำมาใช้แล้ว เพื่อควบคุมมาตรการป้องกันที่ใช้ในระดับไฮเปอร์ไวเซอร์ต่อการโจมตี CPU ในระบบเกสต์ พารามิเตอร์ VIRT_SSBD และ MSR_SPEC_CTRL จะถูกเสนอ
- การขนส่ง VirtIO-Grant ได้รับการพัฒนาแยกกัน แตกต่างจาก VirtIO-MMIO ในเรื่องระดับความปลอดภัยที่สูงกว่า และความสามารถในการรันตัวจัดการในโดเมนแยกที่แยกต่างหากสำหรับไดรเวอร์ VirtIO-Grant แทนที่จะใช้การแมปหน่วยความจำโดยตรง ใช้การแปลที่อยู่ทางกายภาพของระบบเกสต์เป็นลิงก์อนุญาต ซึ่งอนุญาตให้ใช้พื้นที่ที่ตกลงไว้ล่วงหน้าของหน่วยความจำที่ใช้ร่วมกันสำหรับการแลกเปลี่ยนข้อมูลระหว่างระบบเกสต์และแบ็กเอนด์ VirtIO โดยไม่มีการอนุญาต สิทธิ์แบ็กเอนด์ในการทำแผนที่หน่วยความจำ รองรับ VirtIO-Grant แล้วในเคอร์เนล Linux แต่ยังไม่รวมอยู่ในแบ็กเอนด์ QEMU ใน virtio-vhost และในชุดเครื่องมือ (libxl/xl)
- ความคิดริเริ่ม Hyperlaunch ยังคงพัฒนาอย่างต่อเนื่อง โดยมีเป้าหมายเพื่อมอบเครื่องมือที่ยืดหยุ่นสำหรับการกำหนดค่าการเปิดตัวเครื่องเสมือนระหว่างการบูตระบบ ปัจจุบัน ชุดแพตช์ชุดแรกได้ถูกจัดเตรียมไว้แล้วซึ่งช่วยให้คุณสามารถตรวจจับโดเมน PV และถ่ายโอนรูปภาพไปยังไฮเปอร์ไวเซอร์เมื่อทำการโหลด ทุกสิ่งที่จำเป็นในการรันโดเมนพาราเวอร์ชวลไลซ์ดังกล่าวก็ถูกนำมาใช้เช่นกัน รวมถึงส่วนประกอบ Xenstore สำหรับไดรเวอร์ PV เมื่อแพทช์ได้รับการยอมรับ งานจะเริ่มเพื่อรองรับอุปกรณ์ PVH และ HVM เช่นเดียวกับการใช้งานโดเมน domB ที่แยกจากกัน (โดเมนตัวสร้าง) ซึ่งเหมาะสำหรับการจัดระเบียบการบู๊ตที่วัดได้ เพื่อยืนยันความถูกต้องของส่วนประกอบที่โหลดทั้งหมด
- งานยังคงดำเนินต่อไปในการสร้างพอร์ตของ Xen สำหรับสถาปัตยกรรม RISC-V
ที่มา: opennet.ru