پروژه NetBSD در حال توسعه یک هایپروایزر جدید NVMM است

توسعه دهندگان پروژه NetBSD اعلام کرد در مورد ایجاد یک Hypervisor جدید و پشته مجازی سازی مرتبط، که قبلاً در شاخه آزمایشی NetBSD-current گنجانده شده است و در نسخه پایدار NetBSD 9 ارائه خواهد شد. NVMM در حال حاضر محدود به پشتیبانی از معماری x86_64 است و دو backend برای فعال کردن مکانیسم های مجازی سازی سخت افزار: x86-SVM با پشتیبانی از برنامه های افزودنی مجازی سازی CPU AMD و x86-VMX برای پردازنده های اینتل. در شکل فعلی، امکان اجرا تا 128 ماشین مجازی بر روی یک هاست وجود دارد که هر کدام می توانند تا 256 هسته پردازشگر مجازی (VCPU) و 128 گیگابایت رم را به خود اختصاص دهند.

NVMM شامل یک درایور است که در سطح هسته سیستم اجرا می شود و دسترسی به مکانیزم های مجازی سازی سخت افزار را هماهنگ می کند و یک پشته Libnvmm که در فضای کاربر اجرا می شود. تعامل بین اجزای هسته و فضای کاربر از طریق IOCTL انجام می شود. یکی از ویژگی های NVMM که آن را از هایپروایزرهایی مانند KVM متمایز می کند HAXM و Bhyve، این است که در سطح هسته، تنها حداقل مجموعه مورد نیاز از اتصالات پیرامون مکانیزم‌های مجازی‌سازی سخت‌افزار انجام می‌شود، و همه کدهای شبیه‌سازی سخت‌افزار از هسته به فضای کاربر منتقل می‌شوند. این رویکرد به شما این امکان را می دهد که میزان کدهای اجرا شده با امتیازات بالا را کاهش دهید و خطر به خطر افتادن کل سیستم را در صورت حمله به آسیب پذیری های Hypervisor کاهش دهید. علاوه بر این، اشکال زدایی و تست فازی پروژه به طور قابل توجهی ساده شده است.

با این حال، Libnvmm خود شامل توابع شبیه ساز نیست، بلکه فقط یک API ارائه می دهد که به شما امکان می دهد پشتیبانی NVMM را در شبیه سازهای موجود، به عنوان مثال، QEMU ادغام کنید. API عملکردهایی مانند ایجاد و راه اندازی یک ماشین مجازی، تخصیص حافظه به سیستم مهمان و تخصیص VCPU را پوشش می دهد. برای بهبود امنیت و کاهش بردارهای حمله احتمالی، libnvmm تنها توابعی را ارائه می‌کند که صریحاً درخواست شده‌اند—به‌طور پیش‌فرض، کنترل‌کننده‌های پیچیده به‌طور خودکار فراخوانی نمی‌شوند و اگر بتوان از آنها اجتناب کرد، ممکن است اصلاً استفاده نشوند. NVMM سعی می کند همه چیز را ساده نگه دارد، بدون اینکه خیلی پیچیده شود، و به شما این امکان را می دهد که تا آنجا که ممکن است بسیاری از جنبه های کار خود را کنترل کنید.

پروژه NetBSD در حال توسعه یک هایپروایزر جدید NVMM است

بخش سطح هسته NVMM کاملاً با هسته NetBSD ادغام شده است و با کاهش تعداد سوئیچ های متنی بین سیستم عامل مهمان و محیط میزبان امکان بهبود عملکرد را فراهم می کند. در سمت فضای کاربر، libnvmm تلاش می‌کند تا عملیات مشترک ورودی/خروجی را جمع‌آوری کند و از برقراری تماس‌های غیرضروری سیستمی خودداری کند. سیستم تخصیص حافظه مبتنی بر زیرسیستم pmap است که به شما امکان می دهد در صورت کمبود حافظه در سیستم، صفحات حافظه مهمان را به پارتیشن swap خارج کنید. NVMM بدون قفل جهانی و مقیاس است و به شما این امکان را می دهد که به طور همزمان از هسته های مختلف CPU برای اجرای ماشین های مجازی مهمان مختلف استفاده کنید.

یک راه حل مبتنی بر QEMU تهیه شده است که از NVMM برای فعال کردن مکانیسم های مجازی سازی سخت افزار استفاده می کند. کار برای گنجاندن پچ های آماده شده در ساختار اصلی QEMU در حال انجام است. ترکیب QEMU+NVMM قبلاً وجود دارد اجازه می دهد تا با موفقیت سیستم‌های مهمان را با FreeBSD، OpenBSD، Linux، Windows XP/7/8.1/10 و سایر سیستم‌عامل‌ها بر روی سیستم‌های x86_64 با پردازنده‌های AMD و Intel اجرا کنید (به عنوان مثال، اگر Backend مناسب ایجاد شود، NVMM خود به معماری خاصی وابسته نیست. ، می تواند روی سیستم های ARM64 کار کند). در میان زمینه‌های کاربرد بیشتر NVMM، جداسازی سندباکس از برنامه‌های فردی نیز ذکر شده است.

پروژه NetBSD در حال توسعه یک هایپروایزر جدید NVMM است

منبع: opennet.ru

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