Проект NetBSD развивает новый гипервизор NVMM

Рaзрaбoтчики прoeктa NetBSD oбъявили o сoздaнии нoвoгo гипeрвизoрa и связaннoгo с ним стeкa виртуaлизaции, кoтoрыe ужe включeны в сoстaв экспeримeнтaльнoй вeтки NetBSD-current и будут прeдлoжeны в стaбильнoм рeлизe NetBSD 9. NVMM пoкa ограничен поддержкой архитектуры x86_64 и предоставляет неуд бэкенда для задействования аппаратных механизмов виртуализации: x86-SVM с поддержкой расширений виртуализации CPU AMD и x86-VMX в (видах CPU Intel. В текущем виде возможен включение на одном хосте до 128 виртуальных машин, каждой с которых может выделять до 256 виртуальных процессорных ядер (VCPU) и 128 Гб ОЗУ. NVMM заключает драйвер, работающий на уровне ядра системы и координирующий приступ к аппаратным механизма виртуализации, и стек Libnvmm, выполняемый в пространстве пользователя. Согласование компонентов ядра и пространства пользователя осуществляется насквозь IOCTL. Подобный подход позволяет вышвырнуть объем кода, выполняемого с повышенными привилегиями, и уменьшить риск компрометации всей системы в случае атак сверху уязвимоcти в гипервизоре. Кроме того, известно упрощается отладка и fuzzing-тестирование проекта. Рядом этом Libnvmm сам по себя не содержит функции эмулятора, а как только предоставляет API, позволяющий интегрировать поддержку NVMM в существующие эмуляторы, скажем, в QEMU. API охватывает такие функции не хуже кого создание и запуск виртуальной машины, назначение памяти гостевой системе, распределение VCPU. Угоду кому) повышения безопасности и снижения возможных векторов атаки libnvmm предоставляет в какой-нибудь месяц явно запрошенные функции - по умолчанию сложные обработчики неважный (=маловажный) вызываются автоматически и вообще могут безвыгодный применяться, если без них дозволяется обойтись. NVMM пытается обходиться простыми решениями, невыгодный впадая в усложнения и позволяя контролировать якобы можно больше аспектов работы. Работающая держи уровне ядра часть NVMM амба плотно интегрирована с ядром NetBSD, и позволяет успевать. A повышения производительности за счёт сокращения числа переключения контекста посредь гостевой ОС и хост-окружением. Бери стороне пространства пользователя libnvmm старается абстрагировать типовые операции ввода-вывода и не принимая во внимание необходимости не обращаться к системным вызовам. Средство выделения памятью основана на подсистеме pmap, ась? позволяет вытеснять страницы памяти гостевых систем в раздел подкачки в случае нехватки памяти в системе. NVMM избавлен с глобальных блокировок и хорошо масштабируется, позволяя все вдруг использовать разные ядра CPU для выполнения разных гостевых виртуальных машин. Получи и распишись базе QEMU подготовлено решение, использующее NVMM ради задействования аппаратных механизмов виртуализации. Пампуша QEMU+NVMM уже позволяет успешно начинать гостевые системы с FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 и другими ОС для системах x86_64 с процессорами AMD и Intel (непосредственно NVMM не привязан к определённой архитектуре, за примером далеко ходить не нужно, при создании соответствующего бэкенда сможет подвизаться на системах ARM64). Из областей дальнейшего применения NVMM как и отмечается sandbox-изоляция отдельных приложений. Генератор: http://www.opennet.ru/opennews/art.shtml?num=50518