appvm ― утилита, которая позволяет создавать и управлять «тонкими» виртуальными машины для отдельных приложений с помощью пакетного менеджера Nix. Целью проекта является обеспечение большей изоляции в сравнении с песочницами уровня пользователя, при этом предоставляя возможность относительно простого использования в любом дистрибутиве.
Разработка ведется с конца июня, и к сегодняшнему дню удалось получить версию, которую не страшно давать другим людям (хотя код все еще страшноват). На данный момент это что-то среднее между proof-of-concept и alpha-версией.
Особенности:
- Qemu.
- Для всех VM используется одна директория /nix, тем самым каждое последующее приложение в VM не занимает значительного пространства на диске.
- Для управления виртуальными машинами используется libvirt, для отображения — virt-viewer.
- Базовая реализация перераспределения памяти на основе memory balloon для уменьшения потребления памяти.
Ограничения:
- На данный момент не поддерживается автоматическое изменение разрешения внутри виртуальной машины. При этом используется автоматическое масштабирование в virt-manager.
- Отсутствует индикатор прогресса при сборке новой VM для приложения. При создании первой VM для приложения может показаться, что все зависло, но на самом деле нет.
Любая критика и предложения приветствуются (собственно, тред именно для этого и создан).