QEMU 9.2 төслийн хувилбарыг танилцууллаа. Эмуляторын хувьд QEMU нь нэг техник хангамжийн платформд зориулж боловсруулсан програмыг огт өөр архитектуртай систем дээр ажиллуулах боломжийг олгодог, жишээлбэл, x86-тай нийцтэй компьютер дээр ARM програмыг ажиллуулах. QEMU дахь виртуалчлалын горимд тусгаарлагдсан орчинд код гүйцэтгэх гүйцэтгэл нь CPU дээрх зааврыг шууд гүйцэтгэж, Xen hypervisor эсвэл Linux дээрх KVM модулийг, эсвэл NVMM модулийг ашигладаг тул техник хангамжийн системд ойрхон байна. NetBSD.
Уг төслийг Fabrice Bellard анх x86 платформд зориулан бүтээгдсэн Линукс программуудыг x86 бус архитектур дээр ажиллуулах боломжийг олгох зорилгоор бүтээжээ. Хөгжлийн жилүүдэд 14 техник хангамжийн архитектурт бүрэн эмуляцын дэмжлэг нэмэгдэж, дуурайлган хийсэн техник хангамжийн төхөөрөмжийн тоо 400-аас давсан. 9.2 хувилбарт бэлтгэхийн тулд 1700 хөгжүүлэгчээс 209 гаруй өөрчлөлт хийсэн.
QEMU 9.2-д нэмсэн гол сайжруулалтууд:
- Rust хэл дээр бичигдсэн төхөөрөмжийн загварыг бий болгох туршилтын дэмжлэгийг нэмсэн. Rust-ийн дэмжлэгтэйгээр QEMU-г бүтээхдээ анхдагч байдлаар Rust дээр бичигдсэн PL011 UART драйверын өөр хувилбарыг ашигладаг боловч өргөнөөр ашиглахыг хараахан зөвлөдөггүй.
Одоогоор QEMU дахь Rust дэмжлэгийг анхдагчаар идэвхгүй болгосон бөгөөд тохиргооны скриптийг ажиллуулах үед "--enable-rust" сонголтыг зааж өгснөөр бүтээх явцад идэвхждэг. Rust ашиглан бүтээхийн тулд танд дор хаяж rustc 1.63.0 болон bindgen 0.60.0 хувилбарууд хэрэгтэй (жишээ нь, Debian 12 дээр та Rust-ийн шинэ хувилбарыг тусад нь суулгах хэрэгтэй болно). Ирээдүйд Rust хөрвүүлэгч болон bindgen-ийг шаардлагатай барилгын хамаарлыг нэмж оруулахаар төлөвлөж байна.
QEMU-д Rust-ийг сурталчлахтай холбоотой төлөвлөгөөнд HPET (High Precision Event Timer) драйвер болон Rust хэлээр бичигдсэн блок төхөөрөмжүүдийн драйверийг ажиллах нөхцөлд оруулах, Rust-ийг QEMU-ийн янз бүрийн бүрэлдэхүүн хэсгүүдэд ашиглах хүрээг үргэлжлүүлэн хөгжүүлэх (жишээлбэл, блок драйвер төхөөрөмж, таймер болон GPIO), Rust дахь virtio зэрэг аюулгүй байдлын чухал системүүдийг дахин бичих.
- Виртуал GPU-г тэжээдэг VirtIO-GPU төхөөрөмж нь Mesa-д багтсан Venus Vulkan драйвераар дамжуулан хэрэгжүүлсэн Vulkan график API-г ашиглан 3D хурдатгалыг дэмждэг бөгөөд энэ нь зочны системийг нээхгүйгээр 3D дүрслэх виртуал GPU-ээр хангах боломжийг олгодог. физик GPU-д онцгой шууд хандах. Ажиллахын тулд та хост системийн тал дээр virglrenderer номын сан, зочин системийн талд Venus Mesa драйвер байх ёстой. QEMU-д Vulkan-ийн дэмжлэгийг тохируулах зааврыг авах боломжтой.
- Зочны шилжилтийн хэрэгсэл нь QATzip номын санг ашиглан нэгэн зэрэг дамжуулагдсан өгөгдлийн урсгалын шахалтын ажиллагааг хурдасгах дэмжлэгийг нэмсэн бөгөөд энэ нь Intel процессоруудад суурилуулсан QAT (QuickAssist Technology) хурдасгуурыг ашигладаг бөгөөд энэ нь шахалт, шифрлэлттэй холбоотой тооцооллыг хурдасгах хэрэгслүүдийг санал болгодог.
- SHA-384 хэш алгоритмын дэмжлэгийг GLib-д суурилсан криптографийн арын хэсэгт нэмсэн.
- ARM архитектурын эмулятор нь FEAT_EBF16 болон FEAT_CMOW процессорын өргөтгөлүүдийн дэмжлэг, мөн xilinx-zynq-a9 самбарт ашиглагддаг хамгаалалтын өргөтгөлүүдийг нэмсэн. ARM Mac компьютер дээр зочны гүйцэтгэлийг хурдасгахын тулд Hypervisor.framework хэрэгслийн багцыг ашигладаг HVF бүрэлдэхүүн хэсгийг ашиглах үед 64 ГБ-аас дээш санах ойг дэмждэг. Дууриамал sbsa-ref болон virt системүүдийн хувьд SMMU (Системийн санах ойн удирдлагын нэгж) дахь хоёр үе шаттай хаяг орчуулгын дэмжлэг нэмэгдсэн. Akita, Borzoi, Cheetah, Connex, Mainstone, n800, n810, spitz, terrier, tosa, verdex болон z2 зэрэг хуучин дуураймал техник хангамжийн төрлүүдийг дэмжихээ больсон.
- X86 архитектурын эмулятор нь AWS Nitro Enclave орчныг дуурайлган, системийн зургийг Enclave Image форматаар ачаалах чадвартай nitro-enclave хэмээх шинэ төрлийн техник хангамжийн тохиргооны дэмжлэгийг нэмсэн.
- Гипервизорын x86 архитектурын эмулятор дээр KVM AVX10 зааврын багц болон AVX10-ийн тодорхой хувилбарууд болох avx10-128, avx10-256, болон avx10-512-ийг дэмжих боломжийг хэрэгжүүлсэн.
- RISC-V архитектурын эмулятор нь OpenTitan хавтан дээр хэрэглэгддэг Svvptc, Bitmanip (Bit-Manipulation) болон CFI (Control Flow Integrity) командын багц өргөтгөлүүдэд нэмэлт дэмжлэг үзүүлсэн. IOMMU дэмжлэг нь "virt" төрлийн дуурайлган системд нэмэгдсэн. ld болон st зааврын гүйцэтгэл сайжирсан.
- HPPA архитектурын эмулятор дээр SeaBIOS-hppa програм хангамжийг 17 хувилбар болгон шинэчилсэн.
- Заасан төхөөрөмжөөс ачаалж чадаагүй тохиолдолд бусад төхөөрөмжөөс ачаалах чадварыг s390x архитектурын эмулятор дээр нэмсэн.
Эх сурвалж: opennet.ru
