წარმოდგენილია QEMU პროექტის 10.0.0 ვერსიის გამოშვება. როგორც ემულატორი, QEMU-ს საშუალებას აძლევს მომხმარებელს, გაუშვას ერთი აპარატურული პლატფორმისთვის აწყობილი პროგრამა სრულიად განსხვავებული არქიტექტურის მქონე სისტემაზე, მაგალითად, ARM-ისთვის განკუთვნილი აპლიკაციის გაშვება x86-თან თავსებად პერსონალურ კომპიუტერზე. ვირტუალიზაციის რეჟიმში, QEMU-ში კოდის შესრულების წარმადობა იზოლირებულ გარემოში აპარატურულ სისტემასთან ახლოსაა ცენტრალურ პროცესორზე ინსტრუქციების პირდაპირი შესრულებისა და Xen ჰიპერვიზორის ან KVM მოდულის (Linux-ში) ან NVMM მოდულის (NetBSD-ში) გამოყენების ხარჯზე.
პროექტი თავდაპირველად შექმნა ფაბრის ბელარმა (Fabrice Bellard) იმ მიზნით, რომ უზრუნველყოფილიყო x86 პლატფორმისთვის აწყობილი Linux-ის შესრულებადი ფაილების გაშვების შესაძლებლობა x86-ისგან განსხვავებულ არქიტექტურებზე. განვითარების წლების განმავლობაში დაემატა სრული ემულაციის მხარდაჭერა 14 აპარატურული არქიტექტურისთვის, ხოლო ემულირებული აპარატურული მოწყობილობების რაოდენობამ 400-ს გადააჭარბა. 10.0 ვერსიის მომზადებისას განხორციელდა 2800-ზე მეტი ცვლილება 211 დეველოპერის მიერ.
QEMU 10.0-ში დამატებული ძირითადი გაუმჯობესებები:
- virtio-scsi: ვირტუალური SCSI კონტროლერის (SCSI Host Bus Adapter) დრაივერში, რომელიც განკუთვნილია ვირტუალური მანქანებისთვის, დამატებულია მრავალდონიანი რიგების სისტემის (multiqueue) მხარდაჭერა. ეს საშუალებას იძლევა სხვადასხვა ბლოკური მოწყობილობისთვის რიგების გაყოფა, რათა უზრუნველყოფილ იქნას მრავალნაკადიანი წვდომა მრავალბირთვიან სისტემებზე (ერთი საცავის სხვადასხვა რიგის დამუშავება შესაძლებელია შეყვანა/გამოყვანის სხვადასხვა ნაკადის მიერ). ვირტუალური ბლოკური მოწყობილობის (virtio-blk) დრაივერთან შედარებით, ვირტუალური SCSI კონტროლერი მცირედ ჩამორჩება წარმადობაში, მაგრამ საშუალებას იძლევა 28-ზე მეტი დისკის გამოყენება.
- VFIO: გაუმჯობესებულია IGD-ის (Integrated Graphics Device) გადამისამართების მხარდაჭერა ინტეგრირებული გრაფიკული პროცესორებისთვის, რომლებიც გამოიყენება Intel-ის 11 (Rocket Lake) და 12 (Alder Lake) თაობის პროცესორებში. დამატებულია ძველი ATI GPU-ების (x550) მხარდაჭერა. რეალიზებულია PCI PM-ის (Power Management) ძირითადი მხარდაჭერა.
- QMP: მნიშვნელოვნად გადამუშავებულია და გაფართოებულია QMP-ის (QEMU Machine Protocol) პროტოკოლის დოკუმენტაცია, რომელიც აპლიკაციებს საშუალებას აძლევს მართონ QEMU.
- Live-მიგრაცია: დამატებულია Live-მიგრაციის ახალი რეჟიმი “cpr-transfer” (CheckPoint and Restart), რომელიც საშუალებას იძლევა სტუმარი სისტემის გადატანა იმავე ჰოსტზე გაშვებულ QEMU-ს ახალ ინსტანციაში. რეჟიმი ამცირებს შეჩერების დროს იმის ხარჯზე, რომ სტუმარი სისტემის მეხსიერება აისახება ახალი QEMU-ს ვირტუალურ მისამართების სივრცეში შიგთავსის კოპირების გარეშე.
- გრაფიკული მოწყობილობები macOS-ისთვის: დამატებულია გრაფიკული მოწყობილობები ‘apple-gfx-pci’ და ‘apple-gfx-mmio’, რომლებიც იყენებენ ParavirtualizedGraphics ფრეიმვორკს, რომელიც macOS-შია გათვალისწინებული სტუმარი სისტემებში გრაფიკის აპარატურული აჩქარებისთვის. პირველი დრაივერი განკუთვნილია x86-64 მოწყობილობებზე გამოსაყენებლად, ხოლო მეორე – ARM64-ზე.
- x86 ემულატორი: რეალიზებულია Intel Xeon Clearwater Forest და Sierra Forest v2 პროცესორების მოდელების მხარდაჭერა. დაჩქარებულია სტრიქონული მონაცემების მანიპულირების ინსტრუქციების ემულაცია.
- ARM ემულატორი: რეალიზებულია NPCM8445 Evaluation და i.MX 8M Plus EVK პლატფორმების მხარდაჭერა. დამატებულია FEAT_AFP, FEAT_RPRES და FEAT_XS გაფართოებების, ასევე EL2 დონის ფიზიკური და ვირტუალური ტაიმერების ემულაცია. გამოცხადებულია CPU Arm PXA2xx-ის მხარდაჭერის მოძველება და iwMMXt ინსტრუქციების ემულაცია.
- RISC-V ემულატორი: რეალიზებულია Microblaze V, CPU Ascalon და CPU RV64 Xiangshan Nanhu პლატფორმების ემულაცია. დამატებულია ბრძანებების ნაკრების არქიტექტურის შემდეგი გაფართოებების მხარდაჭერა: ‘svukte’, ‘ssstateen’, ‘smrnmi’, ‘smdbltrp’/’ssdbltrp’, ‘supm’, ‘sspm’, ასევე IOMMU თარგმანის ტეგებისა და riscv-iommu-sys მოწყობილობების მხარდაჭერა.
- HPPA ემულატორი: უზრუნველყოფილია Diva GSP BMC პლატფორმის ემულაცია. SeaBIOS-hppa-ს firmware განახლდა 18-ე ვერსიამდე. გაზრდილია თარგმანის სიჩქარე. გაუმჯობესებულია ვირტუალური CPU-ს გადატვირთვის კოდი. 64-ბიტიან სისტემებზე უზრუნველყოფილია 256 გბ-მდე მეხსიერების ზომის კონფიგურაციების ემულაცია.
- LoongArch ემულატორი: გამოჩნდა ცხელი მიერთების CPU-ების მხარდაჭერა. რეალიზებულია პარავირტუალიზებული IPI (inter-processor interrupt). უზრუნველყოფილია KVM ჰიპერვიზორისგან რესურსების მიწოდების ლოდინის დროის თვალყურის დევნება. დამატებულია გარე შეწყვეტების ვირტუალური მარშრუტიზაციის (extioi) მხარდაჭერა.
- s390x ემულატორი: დამატებულია მეინფრეიმების CPU-ების მე-17 თაობის მხარდაჭერა და რეალიზებულია virtio-mem-ის მხარდაჭერა. წარმადობის გაზრდის მიზნით დამატებულია PCI მოწყობილობებთან ურთიერთქმედების შესაძლებლობა IOMMU-ს გვერდის ავლით.