إصدار محاكي QEMU 4.0

تشكلت إطلاق المشروع QEMU 4.0. كمحاكي، يتيح لك QEMU تشغيل برنامج تم تجميعه لمنصة أجهزة واحدة على نظام ذي بنية مختلفة تمامًا، على سبيل المثال، تشغيل تطبيق ARM على جهاز كمبيوتر متوافق مع x86. في وضع المحاكاة الافتراضية في QEMU، يكون أداء تنفيذ التعليمات البرمجية في بيئة معزولة قريبًا من النظام الأصلي بسبب التنفيذ المباشر للتعليمات على وحدة المعالجة المركزية واستخدام وحدة Xen Hypervisor أو وحدة KVM.

تم إنشاء المشروع في الأصل بواسطة Fabrice Bellard للسماح لملفات Linux التنفيذية المصممة لمنصة x86 بالعمل على بنى غير x86. على مدار سنوات التطوير ، تمت إضافة دعم محاكاة كامل لـ 14 بنية للأجهزة ، وتجاوز عدد الأجهزة التي تمت مضاهاتها 400 جهاز. استعدادًا للإصدار 4.0 ، تم إجراء أكثر من 3100 تغيير من 220 مطورًا.

مفتاح تحسيناتتمت إضافته في QEMU 4.0:

  • تمت إضافة دعم لملحقات تعليمات ARMv8+ إلى محاكي بنية ARM: SB، PredInv، HPD، LOR، FHM، AA32HPD،
    PAuth، JSConv، CondM، FRINT وBTI. تمت إضافة دعم لمحاكاة لوحات Musca وMPS2. تحسين محاكاة ARM PMU (وحدة إدارة الطاقة). إلى المنصة virt وأضاف القدرة على استخدام أكثر من 255 جيجابايت من ذاكرة الوصول العشوائي ودعم صور u-boot من النوع "noload"؛

  • في محاكي بنية x86 في محرك تسريع المحاكاة الافتراضية هاكس أضافت (Intel Hardware Accelerated Execution) دعمًا للمضيفين المتوافقين مع POSIX مثل Linux وNetBSD (كان نظام Darwin الأساسي فقط مدعومًا سابقًا). في محاكي شرائح Q35 (ICH9) لمنافذ PCIe الرئيسية، يمكن الآن الإعلان بشكل اختياري عن السرعة القصوى (16GT/s) وعدد خطوط الاتصال (x32) المحددة في مواصفات PCIe 4.0 (لضمان التوافق، يتم تعيين 2.5GT يتم تثبيته افتراضيًا للأنواع الأقدم من أجهزة /s QEMU وx1). من الممكن تحميل صور Xen PVH باستخدام خيار "-kernel"؛
  • أضاف محاكي بنية MIPS دعمًا لمحاكاة متعددة الخيوط باستخدام منشئ الأكواد الكلاسيكي TCG (Tiny Code Generator). تمت إضافة دعم أيضًا لمحاكاة وحدة المعالجة المركزية (CPU I7200 (nanoMIPS32 ISA) وI6500 (MIPS64R6 ISA)، والقدرة على معالجة طلبات نوع وحدة المعالجة المركزية باستخدام QMP (بروتوكول إدارة QEMU)، وإضافة دعم لسجلات تكوين SAARI وSAAR. تحسين أداء الأجهزة الافتراضية من نوع Fulong 2E. تحديث تنفيذ وحدة الاتصالات بين الخيوط؛
  • في محاكي بنية PowerPC، تمت إضافة دعم لمحاكاة وحدة تحكم المقاطعة XIVE، وتم توسيع دعم POWER9، وبالنسبة لسلسلة P، تمت إضافة القدرة على التوصيل السريع لجسور مضيف PCI (PHB، جسر مضيف PCI). يتم تمكين الحماية ضد هجمات Spectre وMeltdown بشكل افتراضي؛
  • تمت إضافة دعم محاكاة PCI وUSB إلى محاكي بنية RISC-V. يدعم الآن خادم تصحيح الأخطاء المدمج (gdbserver) تحديد قوائم التسجيل في ملفات XML. تمت إضافة دعم لحقول mstatus TSR وTW وTVM؛
  • أضاف محاكي البنية s390 دعمًا لنموذج وحدة المعالجة المركزية z14 GA 2، بالإضافة إلى دعم محاكاة ملحقات التعليمات لعمليات النقطة العائمة والمتجهات. تمت إضافة القدرة على توصيل الأجهزة بسرعة إلى vfio-ap؛
  • قام محاكي معالج عائلة Tensilica Xtensa بتحسين دعم SMP لنظام Linux وإضافة دعم لـ FLIX (امتداد تعليمات الطول المرن)؛
  • تمت إضافة خيار "-display Spice-app" إلى الواجهة الرسومية لتكوين إصدار من عميل الوصول عن بعد Spice وتشغيله بتصميم مشابه لواجهة QEMU GTK؛
  • تمت إضافة دعم للتحكم في الوصول باستخدام خيارات tls-authz/sasl-authz لتطبيق خادم VNC؛
  • أضاف QMP (بروتوكول إدارة QEMU) دعمًا لتنفيذ الأوامر المركزية/الخارجية (خارج النطاق) وقام بتنفيذ أوامر إضافية للعمل مع أجهزة الحظر؛
  • تمت إضافة تطبيق واجهة EDID إلى VFIO لأجهزة mdev المدعومة (Intel vGPUs)، مما يسمح لك بتغيير دقة الشاشة باستخدام خيارات xres وyres؛
  • تمت إضافة جهاز "xen-disk" جديد لـ Xen، والذي يمكنه إنشاء واجهة خلفية للقرص بشكل مستقل لـ Xen PV (دون الوصول إلى xenstore). تمت زيادة أداء الواجهة الخلفية لقرص Xen PV وإضافة القدرة على تغيير حجم القرص؛
  • تم توسيع إمكانيات التشخيص والتتبع في أجهزة كتلة الشبكة، كما تم تحسين توافق العميل مع تطبيقات خادم NBD التي بها مشكلات. تمت إضافة خيارات "--bitmap" و"--list" و"--tls-authz" إلى qemu-nbd؛
  • تمت إضافة دعم لوضع PCI IDE إلى IDE/عبر الجهاز الذي تمت محاكاته؛
  • تمت إضافة دعم لاستخدام خوارزمية lzfse لضغط صور dmg. بالنسبة لتنسيق qcow2، تمت إضافة دعم لتوصيل ملفات البيانات الخارجية. يتم نقل عمليات التفريغ qcow2 إلى موضوع منفصل. تمت إضافة دعم لعملية "blockdev-create" في صور vmdk؛
  • أضاف جهاز الكتلة virtio-blk دعمًا لعمليات DISCARD (الإبلاغ عن إصدار الكتل) وعمليات WRITE_ZEROES (صفر نطاق الكتل المنطقية)؛
  • يدعم جهاز pvrdma خدمات مخطط بيانات إدارة RDMA (MAD)؛
  • ساهم التغييرات، انتهاك التوافق مع الإصدارات السابقة. على سبيل المثال، بدلاً من خيار "المقبض" في "-fsdev" و"-virtfs"، يجب عليك استخدام الخيارات "المحلية" أو "الوكيل". تمت إزالة الخيارات "-virtioconsole" (تم استبدالها بـ "-device virtconsole") و"-no-frame" و"-clock" و"-enable-hax" (تم استبدالها بـ "-accel hax"). تمت إزالة الجهاز "ivshmem" (يجب استخدام "ivshmem-doorbell" و"ivshmem-plain"). تم إيقاف دعم البناء باستخدام SDL1.2 (تحتاج إلى استخدام SDL2).

المصدر: opennet.ru

إضافة تعليق