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

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

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

تمت إضافة التحسينات الرئيسية في QEMU 6.0:

  • أصبح محاكي وحدة التحكم NVMe متوافقًا مع مواصفات NVMe 1.4 وهو مزود بدعم تجريبي لمساحات الأسماء المخصصة، والإدخال/الإخراج متعدد المسارات، وتشفير البيانات من طرف إلى طرف على محرك الأقراص.
  • تمت إضافة خيارات تجريبية "-machine x-remote" و"-device x-pci-proxy-dev" لنقل محاكاة الجهاز إلى العمليات الخارجية. في هذا الوضع، يتم حاليًا دعم محاكاة محول lsi53c895 SCSI فقط.
  • تمت إضافة دعم تجريبي لإنشاء لقطات لمحتويات ذاكرة الوصول العشوائي (RAM).
  • تمت إضافة وحدة FUSE لتصدير أجهزة الحظر، مما يسمح لك بتثبيت شريحة من حالة أي جهاز حظر مستخدم في نظام الضيف. يتم تنفيذ التصدير من خلال أمر QMP block-export-add أو من خلال خيار "--export" في الأداة المساعدة qemu-storage-daemon.
  • يضيف محاكي ARM دعمًا لبنية ARMv8.1-M 'Helium' ومعالجات Cortex-M55، بالإضافة إلى تعليمات ARMv8.4 TTST وSEL2 وDIT الموسعة. تمت إضافة دعم للوحات ARM mps3-an524 وmps3-an547 أيضًا. تم تنفيذ محاكاة إضافية للأجهزة للوحات xlnx-zynqmp وxlnx-versal وsbsa-ref وnpcm7xx وsabrelite.
  • بالنسبة إلى ARM، في أوضاع المحاكاة على مستوى النظام وبيئة المستخدم، تم تنفيذ دعم ملحق ARMv8.5 MTE (MemTag، Memory Tagged Extension)، والذي يسمح لك بربط العلامات بكل عملية تخصيص للذاكرة وتنظيم فحص المؤشر عندما الوصول إلى الذاكرة، والتي يجب أن تكون مرتبطة بالعلامة الصحيحة. يمكن استخدام الامتداد لمنع استغلال الثغرات الأمنية الناتجة عن الوصول إلى كتل الذاكرة المحررة بالفعل، وتجاوز سعة المخزن المؤقت، والوصول قبل التهيئة، والاستخدام خارج السياق الحالي.
  • أضاف محاكي البنية 68 كيلو دعمًا لنوع جديد من الأجهزة التي تمت محاكاتها "virtio"، والذي يستخدم أجهزة Virtio لتحسين الأداء.
  • يضيف محاكي x86 القدرة على استخدام تقنية AMD SEV-ES (المحاكاة الافتراضية المشفرة الآمنة) لتشفير سجلات المعالج المستخدمة في نظام الضيف، مما يجعل محتويات السجلات غير قابلة للوصول إلى البيئة المضيفة ما لم يمنح نظام الضيف حق الوصول إليها بشكل صريح.
  • يقوم منشئ أكواد TCG (Tiny Code Generator) الكلاسيكي، عند محاكاة أنظمة x86، بتنفيذ دعم آلية PKS (مشرف مفاتيح الحماية)، والتي يمكن استخدامها لحماية الوصول إلى صفحات الذاكرة المميزة.
  • تمت إضافة نوع جديد من الأجهزة المحاكية "virt" إلى محاكي بنية MIPS مع دعم معالجات Loongson-3 الصينية.
  • في محاكي بنية PowerPC للأجهزة التي تمت محاكاتها "powernv"، تمت إضافة دعم لوحدات تحكم BMC الخارجية. بالنسبة لأجهزة pseries التي تمت محاكاتها، يتم توفير إشعار بالفشل عند محاولة إزالة الذاكرة ووحدة المعالجة المركزية.
  • تمت إضافة دعم لمحاكاة معالجات Qualcomm Hexagon باستخدام DSP.
  • يدعم منشئ أكواد TCG (Tiny Code Generator) الكلاسيكي بيئات مضيفة macOS على الأنظمة المزودة بشريحة Apple M1 ARM الجديدة.
  • يدعم محاكي بنية RISC-V للوحات Microchip PolarFire فلاش QSPI NOR.
  • يدعم محاكي Tricore الآن نموذج لوحة TriBoard الجديد، الذي يحاكي Infineon TC27x SoC.
  • يوفر محاكي ACPI القدرة على تعيين أسماء لمحولات الشبكة في أنظمة الضيف المستقلة عن الترتيب الذي تتصل به بناقل PCI.
  • أضافت virtiofs دعمًا لخيار FUSE_KILLPRIV_V2 لتحسين أداء الضيف.
  • أضاف VNC دعمًا لشفافية المؤشر ودعمًا لقياس دقة الشاشة في virtio-vga، استنادًا إلى حجم النافذة.
  • أضاف QMP (بروتوكول جهاز QEMU) دعمًا للوصول المتوازي غير المتزامن عند تنفيذ مهام النسخ الاحتياطي.
  • أضاف محاكي USB القدرة على حفظ حركة المرور الناتجة عند العمل مع أجهزة USB في ملف pcap منفصل للفحص اللاحق في Wireshark.
  • تمت إضافة أوامر QMP جديدة: تحميل لقطة، وحفظ لقطة، وحذف لقطة لإدارة لقطات qcow2.
  • تم إصلاح الثغرات الأمنية CVE-2020-35517 وCVE-2021-20263 في Virtiofs. المشكلة الأولى تسمح بالوصول إلى البيئة المضيفة من نظام الضيف عن طريق إنشاء ملف أجهزة خاصة في نظام الضيف بواسطة مستخدم مميز في دليل مشترك مع البيئة المضيفة. سبب المشكلة الثانية هو وجود خطأ في التعامل مع السمات الموسعة في خيار "xattrmap" ويمكن أن يتسبب في تجاهل أذونات الكتابة وتصعيد الامتيازات داخل نظام الضيف.

المصدر: opennet.ru

إضافة تعليق