NetBSD projektu izstrādātāji
NVMM ietver draiveri, kas darbojas sistēmas kodola līmenī un koordinē piekļuvi aparatūras virtualizācijas mehānismiem, un Libnvmm steku, kas darbojas lietotāja telpā. Kodola komponentu un lietotāja telpas mijiedarbība tiek veikta, izmantojot IOCTL. NVMM iezīme, kas to atšķir no hipervizoriem, piemēram, KVM
Tomēr pats Libnvmm nesatur emulatora funkcijas, bet nodrošina tikai API, kas ļauj integrēt NVMM atbalstu esošajos emulatoros, piemēram, QEMU. API aptver tādas funkcijas kā virtuālās mašīnas izveide un palaišana, atmiņas piešķiršana viesu sistēmai un VCPU piešķiršana. Lai uzlabotu drošību un samazinātu iespējamos uzbrukuma vektorus, libnvmm nodrošina tikai tās funkcijas, kas ir tieši pieprasītas — pēc noklusējuma sarežģīti apstrādātāji netiek izsaukti automātiski un tos var neizmantot vispār, ja no tiem var izvairīties. NVMM cenšas padarīt lietas vienkāršas, nesarežģītos un ļaujot jums kontrolēt pēc iespējas vairāk sava darba aspektu.
NVMM kodola līmeņa daļa ir diezgan cieši integrēta ar NetBSD kodolu un ļauj uzlabot veiktspēju, samazinot konteksta slēdžu skaitu starp viesu OS un resursdatora vidi. Lietotāju telpas pusē libnvmm mēģina apkopot parastās I/O darbības un izvairīties no nevajadzīgiem sistēmas izsaukumiem. Atmiņas piešķiršanas sistēma ir balstīta uz pmap apakšsistēmu, kas ļauj izlikt viesu atmiņas lapas uz mijmaiņas nodalījumu, ja sistēmā trūkst atmiņas. NVMM ir bez globālām slēdzenēm un mērogiem, ļaujot vienlaikus izmantot dažādus CPU kodolus, lai darbinātu dažādas viesu virtuālās mašīnas.
Ir sagatavots uz QEMU balstīts risinājums, kas izmanto NVMM, lai iespējotu aparatūras virtualizācijas mehānismus. Notiek darbs, lai sagatavotos ielāpus iekļautu QEMU galvenajā struktūrā. QEMU+NVMM kombinācija jau ir
Avots: opennet.ru