انتشار شبیه ساز QEMU 9.0.0

انتشار پروژه QEMU 9.0 ارائه شده است. به عنوان یک شبیه ساز، QEMU به شما این امکان را می دهد که برنامه ای را که برای یک پلتفرم سخت افزاری کامپایل شده روی سیستمی با معماری کاملاً متفاوت اجرا کنید، به عنوان مثال، یک برنامه ARM را روی رایانه شخصی سازگار با x86 اجرا کنید. در حالت مجازی سازی در QEMU، عملکرد اجرای کد در محیط ایزوله به دلیل اجرای مستقیم دستورالعمل ها بر روی CPU و استفاده از هایپروایزر Xen یا ماژول KVM در لینوکس یا ماژول NVMM در محیط ایزوله، نزدیک به سیستم سخت افزاری است. NetBSD.

این پروژه در ابتدا توسط Fabrice Bellard ایجاد شد تا به فایل‌های اجرایی لینوکس که برای پلتفرم x86 ساخته شده‌اند اجازه دهند روی معماری‌های غیرx86 اجرا شوند. در طول سال های توسعه، پشتیبانی کامل شبیه سازی برای 14 معماری سخت افزاری اضافه شده است، تعداد دستگاه های سخت افزاری شبیه سازی شده از 400 فراتر رفته است. در آماده سازی برای نسخه 9.0، بیش از 2700 تغییر از 220 توسعه دهنده انجام شده است.

بهبودهای کلیدی اضافه شده در QEMU 9.0:

  • درایور virtio-blk یک دستگاه بلوک مجازی برای ... فراهم می‌کند. ماشین‌های مجازیپشتیبانی از سیستم صف‌بندی چند سطحی (multiqueue) اضافه شد که امکان جداسازی صف‌ها برای دستگاه‌های بلوکی مختلف را فراهم می‌کند تا دسترسی چند رشته‌ای در سیستم‌های چند هسته‌ای فراهم شود (صف‌های مختلف یک دیسک می‌توانند توسط رشته‌های ورودی/خروجی مختلف پردازش شوند).
  • پشتیبانی از ویژگی‌های "backend_defaults"، "logical_block_size"، "physical_block_size"، "min_io_size"، "opt_io_size" و "discard_granularity" در دستگاه بلوک ذخیره‌سازی usb اضافه شده است.
  • کتابخانه gdbstub که برای اشکال زدایی از راه دور در GDB با استفاده از RSP (پروتکل سریال از راه دور) طراحی شده است، پشتیبانی از حالت فورک-دنبال، عملیات siginfo:read و رهگیری تماس های سیستم در فضای کاربر را اضافه کرده است.
  • پشتیبان های پیش تخصیص برای کار در حالت چند رشته ای تطبیق داده شده اند و اکنون می توانند درخواست های چندین رشته را به طور همزمان پردازش کنند. .
  • حالت "mapped-ram" به ابزارهای مهاجرت ماشین مجازی اضافه شده است که کارایی ایجاد عکس های فوری از ماشین های مجازی را افزایش می دهد. تشخیص صفحه حافظه صفر بهبود یافته است که در صورت پشتیبانی سیستم از multifd سرعت انتقال ماشین های مجازی غیرفعال را به میزان قابل توجهی افزایش داده است. هنگام مهاجرت بر اساس VFIO (ورودی/خروجی تابع مجازی)، پشتیبانی از راه اندازی مجدد از حالت ذخیره شده (نقطه بازرسی-راه اندازی مجدد) اجرا می شود.
  • پیاده سازی دستگاه ESP SCSI (am53c974/dc390) بازنویسی شده است.
  • پشتیبانی از الگوریتم رمزگذاری SM4 را اضافه کرد و امکان استفاده از آن را در درایور دستگاه بلوک 'luks' فراهم کرد.
  • پشتیبانی برای ایجاد و استفاده از فایل‌ها با هدرهای ذخیره‌شده LUKS به درایور «luks» اضافه شده است.
  • شبیه ساز معماری ARM از بردهای L475E-IOT01A IoT، mp3-an536 (MPS3 با سیستم عامل AN536) و raspi4b (Raspberry Pi 4 Model B) پشتیبانی می کند. پشتیبانی اضافه شده برای شبیه سازی پسوندهای پردازنده ECV (مجازی سازی شمارنده پیشرفته)، NV (مجازی سازی تودرتو) و NV2 (مجازی سازی تودرتوی پیشرفته). قابلیت های Freescale i.MX6، Allwinner R40، Bananapi، Raspberry Pi، npcm7xx و شبیه سازهای برد virt گسترش یافته است.
  • شبیه‌ساز معماری RISC-V برای پشتیبانی از افزونه‌های معماری مجموعه دستورالعمل‌های Zacas، amocas، RVA22، Zaamo، Zalrsc و Ztso به‌روزرسانی شده است. ماشین‌های مجازی RISC-V اکنون از SMBIOS پشتیبانی می‌کند. پشتیبانی ACPI برای SRAT، SLIT، AIA و PLIC پیاده‌سازی شده است. پشتیبانی RHCT به‌روزرسانی شده است.
  • سیستم عامل SeaBIOS-hppa به نسخه 16 در شبیه ساز معماری HPPA به روز شده است. حداکثر حجم حافظه از 3 گیگابایت به 3840 مگابایت افزایش یافته است. پشتیبانی از گزینه "--nodefaults" اضافه شده است.
  • شبیه ساز معماری LoongArch اکنون از شتاب KVM پشتیبانی می کند و از پسوندهای برداری مجموعه دستورالعمل LSX/LASX پشتیبانی می کند.
  • شبیه ساز معماری s390x پشتیبانی از دستورالعمل های CVDG، CVB، CVBY و CVBG را اضافه کرده است. شبیه سازی LAE (Load Address Extended) بهبود یافته است.
  • دستگاه nubus-virtio-mmio به شبیه ساز معماری 68k اضافه شده است که امکان دسترسی به دستگاه های virtio را از ماشین های q800 فراهم می کند.
  • مجموعه ای با پرچم "-fzero-call-used-regs" ارائه شده است که به شما امکان می دهد در برابر نشت اطلاعات از عملکردها محافظت کنید و تعداد بلوک های مناسب برای ساخت ابزارهای ROP (برنامه نویسی بازگشت گرا) در اکسپلویت ها را کاهش دهید. همچنین یک ساخت با پرچم '-ftrivial-auto-var-init=zero' اضافه شده است تا به طور خودکار تمام متغیرهای ذخیره شده در پشته را صفر کند.
  • اجرای QEMU با KVM اکنون حداقل به یک هسته لینوکس 4.4 نیاز دارد. برای میزبان های ARM در آینده آنها قصد دارند این نوار را به نسخه 4.19 برسانند. پشتیبانی از استفاده از ویندوز 32 بیتی به عنوان سیستم عامل میزبان قطع شده است.
  • پشتیبانی از OpenBSD 7.4 اضافه شده است.

منبع: opennet.ru

اضافه کردن نظر