تم تقديم إصدار مشروع QEMU 8.2. كمحاكي، يتيح لك QEMU تشغيل برنامج تم تجميعه لمنصة أجهزة واحدة على نظام ذي بنية مختلفة تمامًا، على سبيل المثال، تشغيل تطبيق ARM على جهاز كمبيوتر متوافق مع x86. في وضع المحاكاة الافتراضية في QEMU، يكون أداء تنفيذ التعليمات البرمجية في بيئة معزولة قريبًا من أداء نظام الأجهزة بسبب التنفيذ المباشر للتعليمات على وحدة المعالجة المركزية واستخدام وحدة Xen Hypervisor أو وحدة KVM.
تم إنشاء المشروع في الأصل بواسطة فابريس بيلارد لتوفير القدرة على تشغيل الملفات التنفيذية التي تم تجميعها لمنصة x86. Linux على بنى معمارية أخرى غير x86. على مر سنوات التطوير، تمت إضافة دعم المحاكاة الكاملة لـ 14 بنية معمارية للأجهزة، وتجاوز عدد أجهزة المحاكاة 400 جهاز. عند إعداد الإصدار 8.2، تم إجراء أكثر من 3200 تغيير من قبل 238 مطورًا.
تمت إضافة التحسينات الرئيسية في QEMU 8.2:
- تمت إضافة جهاز virtio-sound، مما يسمح لك بمحاكاة بطاقة صوت لتسجيل وتشغيل الصوت في النظام الضيف باستخدام واجهة صوتية خلفية على جانب المضيف (pulseaudio أو sdl أو coreaudio). لمحاكاة جهاز صوت في النواة، Linux يجب تفعيل خيار CONFIG_SND_VIRTIO لنظام الضيف.
- تمت إضافة واجهة الرسومات الافتراضية (VGI) الخاصة بـ rutabaga، والتي تُفعّل وحدة معالجة رسومات افتراضية (virtio-gpu) مشابهة لـ VirGL المتوفرة سابقًا، كما تتيح استخدام وحدة معالجة رسومات افتراضية لعرض الرسومات ثلاثية الأبعاد في النظام الضيف دون الحاجة إلى الوصول المباشر الحصري إلى وحدة معالجة الرسومات الفعلية. وقد طُوّر كود rutabaga كجزء من المشروع. Android/CrosVM ويتيح لك استخدام محاكي النظام الأساسي Android مع QEMU العادي.
- تمت إضافة جهاز hv-balloon، الذي يُطبّق بروتوكول الذاكرة الديناميكية لـ Hyper-V. يسمح هذا بإعادة صفحات الذاكرة غير المستخدمة إلى النظام المضيف أثناء التشغيل، وطلب صفحات إضافية في حالة نقص الذاكرة. يُمكن اعتبار هذا الجهاز الجديد بديلاً لجهاز virtio-balloon لأنظمة الضيف. Windows، والذي يستخدم نظامًا خلفيًا على جانب النظام المضيف يدعم بروتوكول الذاكرة الديناميكية.
- تم اقتراح جهاز تخزين فلاش عالمي لمحاكاة محرك أقراص فلاش.
- أضاف برنامج تشغيل NBD (جهاز كتلة الشبكة) دعمًا لملحق البروتوكول الذي يستخدم إزاحات 64 بت عند معالجة البيانات الكبيرة لتحسين الأداء.
- يدعم الأمر dump-guest-memory الآن الإخراج بتنسيق kdump القياسي.
- تمت إضافة دعم لمحاكاة UFS باستخدام أجهزة ufs وufs-lu الجديدة.
- يضيف VFIO (الإدخال/الإخراج للوظيفة الافتراضية) دعمًا لوضع ترحيل P2P وينفذ القدرة على توزيع MSI-X ديناميكيًا. تم إجراء الاستعدادات للانتقال إلى الواجهة الخلفية الجديدة لـ IOMMUFD.
- يطبق جهاز virtio-mem وضع "dynamic-memslots=on" لتخصيص فتحات ذاكرة متعددة ديناميكيًا بدلاً من تخصيص فتحة واحدة كبيرة بشكل ثابت. يتيح لك استخدام هذا الوضع تقليل استهلاك الذاكرة على أجهزة الذاكرة الافتراضية الكبيرة التي تخصص كمية صغيرة من الذاكرة للجهاز الظاهري.
- في محاكي بنية x86، عند محاكاة بيئة Xen Hypervisor المستندة إلى KVM تم توفير دعم لوحدة تحكم PV وأجهزة الشبكة، وتم تبسيط أوامر أجهزة الكتل والشبكة. كما تمت إضافة دعم لتعليمات SHA إلى مولد أكواد TCG الكلاسيكي.
- يقوم محاكي بنية ARM بتنفيذ محاكاة لوحدات المعالجة المركزية Cortex-A710 وNeoverse-N2. تمت إضافة دعم لملحقات المعالج PACQARMA3 وEPAC وPauth2 وFPAC وFPACCOMBINE وTIDCP1 وMOPS وHBC وHPMN0. تم تنفيذ محاكاة أجهزة CFU/CFI وTRNG للوحة Xilinx Versal.
- ينفذ محاكي بنية RISC-V مجموعة من تعليمات التشفير المتجه. تمت إضافة دعم لأسئلة IRQ الافتراضية وتصفية IRQ. تم استقرار دعم ملحقات Zicond. تمت إضافة دعم لملحقات المحاكاة الافتراضية AIA (هندسة المقاطعة المتقدمة) عبر KVM.
- يوفر محاكي بنية HPPA محاكاة لوحدة المعالجة المركزية PA-RISC 64 2.0 بت ومحاكاة نظام C3700، بما في ذلك وحدة التحكم بالذاكرة Astro وجسور Elroy PCI.
- يقوم محاكي بنية LoongArch بتنفيذ محاكاة وحدة المعالجة المركزية Loongson LA132. تمت إضافة دعم لامتداد مجموعة تعليمات LASX وتعليمات PRELDX.
- أضاف محاكي الهندسة المعمارية s390x دعمًا لـ vfio-ap لإعادة توجيه محول التشفير لأنظمة الضيف المحمية.
- أضاف محاكي Tricore دعمًا لمعالجات TC37x (ISA 1.6.2) وتعليمات CRCN وFTOU وFTOHP وHPTOF.
المصدر: opennet.ru
