Выпуск smolvm 1.7, инструментария для создания запускаемых виртуальных машин

Доступен выпуск инструментария smolvm 1.7, позволяющего изолировать выполнение Linux-приложений в отдельных быстрозапускаемых виртуальных машинах. Smolvm даёт возможность упаковать приложение в образ виртуальной машины «smolmachine» или самодостаточный исполняемый файл, включающей все необходимые зависимости, который затем можно запускать на любых хостах с той же архитектурой CPU. Упакованные подобным образом приложения выполняются в отдельной виртуальной машине со своим ядром. При запуске в Linux используется гипервизора KVM, в macOS — Hypervisor.framework, а в Windows — Windows Hypervisor Platform. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Для изоляции процессов с использованием гипервизора применяется библиотека libkrun. Ядро Linux поставляется в форме, встроенной в разделяемую библиотеку libkrunfw. Образы формируется в формате OCI, что позволяет использовать smolvm для запуска в микро-VM существующих образов из Docker Hub, ghcr.io и других реестров, совместимых с OCI.

Время запуска виртуальной машины составляет примерно 200 мс, что всего в два раза больше, чем запуск контейнера, но в десятки раз меньше, чем запуск полноценной гостевой системы. Память для виртуальной машины выделяется и возвращается хост-системе динамически при помощи virtio-драйвера balloon. Во время простоя запускаемого в виртуальной машине процесса, связанный с vCPU цикл тоже приостанавливается, т.е. при неактивности отсутствуют накладные расходы.

Из областей применения отмечается распространение программ в переносимых и самодостаточных исполняемых файлах, изоляция не заслуживающих доверия приложений, запуск docker-контейнеров с более высоким уровнем изоляции, создание сохраняющих своё состояние окружений при разработке программ, использование git и SSH без копирования закрытых ключей в виртуальную машину (пробрасывая из хост-системы через SSH agent).

Возможен запуск в виртуальных машинах графических приложений с перенаправлением доступа к хостовому GPU через virtio-gpu или Venus (API Vulkan поверх virtio). Инструментарий командной строки smolvm и менеджер виртуальных машин выполняются с привилегиями текущего пользователя. Возможен проброс каталогов из хост-системы в виртуальную машину.

Источник: http://www.opennet.ru/opennews/art.shtml?num=65989