Projek NetBSD sedang membangunkan hipervisor NVMM baharu

Pemaju Projek NetBSD diumumkan tentang penciptaan hipervisor baharu dan timbunan maya yang berkaitan, yang sudah disertakan dalam cawangan semasa NetBSD percubaan dan akan ditawarkan dalam keluaran stabil NetBSD 9. NVMM kini terhad untuk menyokong seni bina x86_64 dan menyediakan dua hujung belakang untuk mendayakan mekanisme virtualisasi perkakasan: x86-SVM dengan sokongan untuk sambungan virtualisasi CPU AMD dan x86-VMX untuk CPU Intel. Dalam bentuk semasa, adalah mungkin untuk menjalankan sehingga 128 mesin maya pada satu hos, setiap satunya boleh diperuntukkan sehingga 256 teras pemproses maya (VCPU) dan 128 GB RAM.

NVMM termasuk pemacu yang berjalan pada tahap kernel sistem dan menyelaraskan akses kepada mekanisme virtualisasi perkakasan, dan timbunan Libnvmm yang berjalan dalam ruang pengguna. Interaksi antara komponen kernel dan ruang pengguna dijalankan melalui IOCTL. Ciri NVMM yang membezakannya daripada hypervisor seperti KVM ialah HAXM dan Bhyve, ialah pada peringkat kernel hanya set pengikatan minimum yang diperlukan sekitar mekanisme virtualisasi perkakasan dilakukan, dan semua kod emulasi perkakasan dialihkan keluar dari kernel ke ruang pengguna. Pendekatan ini membolehkan anda mengurangkan jumlah kod yang dilaksanakan dengan keistimewaan yang tinggi dan mengurangkan risiko menjejaskan keseluruhan sistem sekiranya berlaku serangan ke atas kelemahan dalam hipervisor. Di samping itu, ujian penyahpepijatan dan pengkaburan projek dipermudahkan.

Walau bagaimanapun, Libnvmm sendiri tidak mengandungi fungsi emulator, tetapi hanya menyediakan API yang membolehkan anda menyepadukan sokongan NVMM ke dalam emulator sedia ada, contohnya, QEMU. API meliputi fungsi seperti mencipta dan melancarkan mesin maya, memperuntukkan memori kepada sistem tetamu dan memperuntukkan VCPU. Untuk meningkatkan keselamatan dan mengurangkan kemungkinan vektor serangan, libnvmm hanya menyediakan fungsi yang diminta secara eksplisitβ€”secara lalai, pengendali kompleks tidak dipanggil secara automatik dan mungkin tidak digunakan sama sekali jika ia boleh dielakkan. NVMM cuba memastikan perkara mudah, tanpa menjadi terlalu rumit, dan membenarkan anda mengawal sebanyak mungkin aspek kerja anda.

Projek NetBSD sedang membangunkan hipervisor NVMM baharu

Bahagian peringkat kernel NVMM disepadukan agak rapat dengan kernel NetBSD, dan membolehkan prestasi yang lebih baik dengan mengurangkan bilangan suis konteks antara OS tetamu dan persekitaran hos. Di bahagian ruang pengguna, libnvmm cuba mengagregatkan operasi I/O biasa dan mengelak daripada membuat panggilan sistem secara tidak perlu. Sistem peruntukan memori adalah berdasarkan subsistem pmap, yang membolehkan anda mengusir halaman memori tetamu ke partition swap sekiranya berlaku kekurangan memori dalam sistem. NVMM bebas daripada kunci dan skala global dengan baik, membolehkan anda menggunakan teras CPU yang berbeza secara serentak untuk menjalankan mesin maya tetamu yang berbeza.

Penyelesaian berasaskan QEMU telah disediakan yang menggunakan NVMM untuk mendayakan mekanisme virtualisasi perkakasan. Kerja sedang dijalankan untuk memasukkan tampalan yang disediakan dalam struktur utama QEMU. Gabungan QEMU+NVMM sudah ada membolehkan berjaya menjalankan sistem tetamu dengan FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 dan OS lain pada sistem x86_64 dengan pemproses AMD dan Intel (NVMM sendiri tidak terikat dengan seni bina tertentu, contohnya, jika bahagian belakang yang sesuai dibuat , ia akan dapat berfungsi pada sistem ARM64 ). Di antara bidang aplikasi selanjutnya NVMM, pengasingan kotak pasir bagi aplikasi individu juga diperhatikan.

Projek NetBSD sedang membangunkan hipervisor NVMM baharu

Sumber: opennet.ru

Tambah komen