Razvijalci projektov NetBSD
NVMM vključuje gonilnik, ki deluje na ravni sistemskega jedra in usklajuje dostop do mehanizmov za virtualizacijo strojne opreme, in sklad Libnvmm, ki deluje v uporabniškem prostoru. Interakcija med komponentami jedra in uporabniškim prostorom se izvaja prek IOCTL. Značilnost NVMM, ki ga razlikuje od hipervizorjev, kot je KVM, je
Vendar sam Libnvmm ne vsebuje funkcij emulatorja, ampak ponuja samo API, ki vam omogoča integracijo podpore za NVMM v obstoječe emulatorje, na primer QEMU. API pokriva funkcije, kot so ustvarjanje in zagon virtualnega stroja, dodeljevanje pomnilnika gostujočemu sistemu in dodeljevanje VCPU-jev. Za izboljšanje varnosti in zmanjšanje možnih vektorjev napadov libnvmm zagotavlja samo funkcije, ki so izrecno zahtevane – privzeto se zapleteni upravljalniki ne kličejo samodejno in se morda sploh ne uporabljajo, če se jim je mogoče izogniti. NVMM poskuša ohraniti stvari preproste, ne da bi preveč komplicirali, in vam omogoča nadzor nad čim več vidiki vašega dela.
Del NVMM na ravni jedra je precej tesno povezan z jedrom NetBSD in omogoča izboljšano zmogljivost z zmanjšanjem števila kontekstnih preklopov med gostujočim OS in gostiteljskim okoljem. Na strani uporabniškega prostora skuša libnvmm združiti običajne V/I operacije in se izogniti nepotrebnim sistemskim klicem. Sistem dodeljevanja pomnilnika temelji na podsistemu pmap, ki omogoča izgon gostujočih pomnilniških strani na izmenjalno particijo v primeru pomanjkanja pomnilnika v sistemu. NVMM je brez globalnih zaklepanj in se dobro prilagaja, kar vam omogoča hkratno uporabo različnih jeder CPE za zagon različnih gostujočih virtualnih strojev.
Pripravljena je bila rešitev, ki temelji na QEMU in uporablja NVMM za omogočanje mehanizmov za virtualizacijo strojne opreme. V teku je delo za vključitev pripravljenih popravkov v glavno strukturo QEMU. Kombinacija QEMU+NVMM je že
Vir: opennet.ru