NetBSD жобасының әзірлеушілері
NVMM жүйе ядросы деңгейінде жұмыс істейтін және аппараттық құралдарды виртуалдандыру механизмдеріне қол жеткізуді үйлестіретін драйверді және пайдаланушы кеңістігінде жұмыс істейтін Libnvmm стекін қамтиды. Ядро компоненттері мен пайдаланушы кеңістігі арасындағы өзара әрекеттесу IOCTL арқылы жүзеге асырылады. NVMM-тің оны KVM сияқты гипервизорлардан ерекшелендіретін ерекшелігі
Дегенмен, Libnvmm өзі эмулятор функцияларын қамтымайды, тек NVMM қолдауын бар эмуляторларға біріктіруге мүмкіндік беретін API ұсынады, мысалы, QEMU. API виртуалды машинаны жасау және іске қосу, қонақтық жүйеге жадты бөлу және VCPU бөлу сияқты функцияларды қамтиды. Қауіпсіздікті жақсарту және ықтимал шабуыл векторларын азайту үшін libnvmm тек нақты сұралған функцияларды қамтамасыз етеді — әдепкі бойынша, күрделі өңдеушілер автоматты түрде шақырылмайды және оларды болдырмау мүмкін болса, мүлде пайдаланылмауы мүмкін. NVMM тым күрделі болмай, қарапайым нәрселерді сақтауға тырысады және жұмысыңыздың мүмкіндігінше көп аспектілерін басқаруға мүмкіндік береді.
NVMM ядро деңгейіндегі бөлігі NetBSD ядросымен өте тығыз біріктірілген және қонақ ОЖ мен хост ортасы арасындағы контекстік қосқыштардың санын азайту арқылы өнімділікті жақсартуға мүмкіндік береді. Пайдаланушы кеңістігінде libnvmm жалпы енгізу/шығару операцияларын біріктіруге тырысады және жүйелік қоңырауларды қажетсіз жасамауға тырысады. Жадты бөлу жүйесі pmap ішкі жүйесіне негізделген, ол жүйеде жад тапшылығы жағдайында қонақтардың жады беттерін своп бөліміне шығаруға мүмкіндік береді. NVMM жаһандық құлыптарсыз және жақсы масштабталмаған, бұл әртүрлі қонақ виртуалды машиналарын іске қосу үшін әртүрлі CPU ядроларын бір уақытта пайдалануға мүмкіндік береді.
Аппараттық құралдарды виртуалдандыру механизмдерін қосу үшін NVMM қолданатын QEMU негізіндегі шешім дайындалды. Дайындалған патчтарды QEMU негізгі құрылымына енгізу жұмыстары жүргізілуде. QEMU+NVMM комбинациясы бұрыннан бар
Ақпарат көзі: opennet.ru