NetBSD loyihasi yangi NVMM gipervisorini ishlab chiqmoqda

NetBSD loyihasini ishlab chiquvchilari e'lon qildi NetBSD-joriy filialiga allaqachon kiritilgan va NetBSD 9 ning barqaror versiyasida taqdim etiladigan yangi gipervisor va bog‘langan virtualizatsiya stekini yaratish haqida. NVMM hozirda x86_64 arxitekturasini qo‘llab-quvvatlash bilan cheklangan va ikkita backendni taqdim etadi. apparat virtualizatsiya mexanizmlarini yoqish: Intel protsessorlari uchun AMD va x86-VMX CPU virtualizatsiya kengaytmalarini qo'llab-quvvatlaydigan x86-SVM. Hozirgi shaklda bitta xostda 128 tagacha virtual mashinalarni ishga tushirish mumkin, ularning har biriga 256 tagacha virtual protsessor yadrolari (VCPU) va 128 Gb tezkor xotira ajratilishi mumkin.

NVMM tizim yadrosi darajasida ishlaydigan va apparat virtualizatsiya mexanizmlariga kirishni muvofiqlashtiruvchi drayverni va foydalanuvchi maydonida ishlaydigan Libnvmm stekini o'z ichiga oladi. Yadro komponentlari va foydalanuvchi maydoni o'rtasidagi o'zaro ta'sir IOCTL orqali amalga oshiriladi. NVMM ni KVM kabi gipervizorlardan ajratib turadigan xususiyati shundaki HAXM va Bhyve, yadro darajasida faqat apparat virtualizatsiya mexanizmlari atrofida minimal talab qilinadigan bog'lanishlar to'plami amalga oshiriladi va barcha apparat emulyatsiya kodi yadrodan foydalanuvchi maydoniga ko'chiriladi. Ushbu yondashuv yuqori imtiyozlar bilan bajariladigan kod miqdorini kamaytirishga va gipervisordagi zaifliklarga hujumlar sodir bo'lgan taqdirda butun tizimni buzish xavfini kamaytirishga imkon beradi. Bundan tashqari, loyihani disk raskadrovka va noaniq sinovdan o'tkazish sezilarli darajada soddalashtirilgan.

Biroq, Libnvmm-ning o'zi emulyator funktsiyalarini o'z ichiga olmaydi, faqat NVMM-ni qo'llab-quvvatlashni mavjud emulyatorlarga, masalan, QEMU-ga integratsiya qilish imkonini beruvchi API-ni taqdim etadi. API virtual mashinani yaratish va ishga tushirish, mehmon tizimiga xotira ajratish va VCPUlarni taqsimlash kabi funktsiyalarni qamrab oladi. Xavfsizlikni yaxshilash va mumkin bo'lgan hujum vektorlarini kamaytirish uchun libnvmm faqat aniq so'ralgan funktsiyalarni taqdim etadi - sukut bo'yicha, murakkab ishlov beruvchilar avtomatik ravishda chaqirilmaydi va ulardan qochish mumkin bo'lsa, umuman ishlatilmasligi mumkin. NVMM narsalarni juda murakkablashtirmasdan, oddiy saqlashga harakat qiladi va ishning iloji boricha ko'p jihatlarini nazorat qilish imkonini beradi.

NetBSD loyihasi yangi NVMM gipervisorini ishlab chiqmoqda

NVMM ning yadro darajasidagi qismi NetBSD yadrosi bilan chambarchas integratsiyalashgan va mehmon operatsion tizimi va xost muhiti o'rtasidagi kontekstni almashtirish sonini kamaytirish orqali ishlashni yaxshilash imkonini beradi. Foydalanuvchi maydoni tomonida libnvmm umumiy kiritish-chiqarish operatsiyalarini jamlashga harakat qiladi va tizimga keraksiz qo'ng'iroqlarni amalga oshirishdan qochadi. Xotirani taqsimlash tizimi pmap quyi tizimiga asoslangan bo'lib, tizimda xotira yetishmovchiligi bo'lsa, mehmon xotirasi sahifalarini almashtirish bo'limiga chiqarish imkonini beradi. NVMM global qulflar va shkalalardan xoli, bu sizga bir vaqtning o'zida turli xil mehmon virtual mashinalarini ishga tushirish uchun turli CPU yadrolaridan foydalanish imkonini beradi.

Uskuna virtualizatsiya mexanizmlarini yoqish uchun NVMM dan foydalanadigan QEMU asosidagi yechim tayyorlandi. Tayyorlangan yamoqlarni QEMUning asosiy tuzilmasiga kiritish ishlari olib borilmoqda. QEMU+NVMM kombinatsiyasi allaqachon mavjud Bu beradi AMD va Intel protsessorlari bilan x7_8.1 tizimlarida FreeBSD, OpenBSD, Linux, Windows XP/10/86/64 va boshqa OS bilan mehmon tizimlarini muvaffaqiyatli ishga tushiring (NVMM o'zi ma'lum bir arxitektura bilan bog'lanmagan, masalan, tegishli backend yaratilgan bo'lsa. , u ARM64 tizimlarida ishlay oladi). NVMM ni keyingi qo'llash sohalari orasida, shuningdek, individual ilovalarning sandbox izolyatsiyasi ham qayd etilgan.

NetBSD loyihasi yangi NVMM gipervisorini ishlab chiqmoqda

Manba: opennet.ru

a Izoh qo'shish