Распрацоўнікі праекту NetBSD
NVMM уключае драйвер, які працуе на ўзроўні ядра сістэмы і які каардынуе доступ да апаратных механізмаў віртуалізацыі, і стэк Libnvmm, выкананы ў прасторы карыстача. Узаемадзеянне кампанентаў ядра і прасторы карыстача ажыццяўляецца праз IOCTL. Асаблівасцю NVMM, якая адрознівае яго ад такіх гіпервізараў, як KVM,
Пры гэтым Libnvmm сам па сабе не ўтрымоўвае функцыі эмулятара, а толькі падае API, які дазваляе інтэграваць падтрымку NVMM у існыя эмулятары, напрыклад, у QEMU. API ахоплівае такія функцыі як стварэнне і запуск віртуальнай машыны, вылучэнне памяці гасцявой сістэме, размеркаванне VCPU. Для падвышэння бяспекі і зніжэнні магчымых вектараў нападу libnvmm падае толькі відавочна запытаныя функцыі - па змаўчанні складаныя апрацоўшчыкі не выклікаюцца аўтаматычна і наогул могуць не ўжывацца, калі без іх можна абыйсціся. NVMM спрабуе абыходзіцца простымі рашэннямі, не ўпадаючы ва ўскладненні і дазваляючы кантраляваць як мага больш аспектаў працы.
Якая працуе на ўзроўні ядра частка NVMM досыць шчыльна інтэграваная з ядром NetBSD, і дазваляе дамагчыся падвышэнні прадукцыйнасці за рахунак скарачэння ліку пераключэння кантэксту паміж гасцявой АС і хост-асяроддзем. На баку прасторы карыстача libnvmm імкнецца агрэгаваць тыпавыя аперацыі ўводу-высновы і без неабходнасці не звяртацца да сістэмных выклікаў. Сістэма вылучэння памяццю заснавана на падсістэме pmap, што дазваляе выцясняць старонкі памяці гасцявых сістэм у частку падпампоўкі ў выпадку недахопу памяці ў сістэме. NVMM пазбаўлены ад глабальных блакіровак і добра маштабуецца, дазваляючы адначасова выкарыстоўваць розныя ядры CPU для выканання розных гасцявых віртуальных машын.
На базе QEMU падрыхтавана рашэнне, якое выкарыстоўвае NVMM для задзейнічання апаратных механізмаў віртуалізацыі. Вядзецца праца па ўключэнні падрыхтаваных патчаў у асноўны склад QEMU. Звязак QEMU+NVMM ужо
Крыніца: opennet.ru