Pemaju Projek NetBSD
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
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.
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
Sumber: opennet.ru