Содержание
Коротко
На Hacker News показали NSL — NSpawn Subsystem for Linux: способ держать на Linux тот же привычный опыт, что даёт WSL2 на Windows. Хост остаётся «атомарным» и почти нетронутым, а инструменты разработки живут в контейнерах systemd-nspawn внутри одной общей виртуальной машины. Есть доступ к файлам хоста, проброс портов, окна через Waypipe и семь подписанных дистрибутивов с еженедельной пересборкой образов.
Что произошло
Автор проекта каждое утро работает на атомарном Linux‑дистрибутиве: систему обновляют как целое, а ставить компиляторы, SDK и зависимости «прямо на хост» не хочется. На Windows эту боль закрыл WSL2: отдельная среда разработки, те же файлы проекта, порты на 127.0.0.1. NSL переносит ту же схему на Linux. Одна виртуальная машина держит одну или несколько машин‑контейнеров; они стартуют по запросу и сохраняют пакеты, службы и файлы между сеансами.
Команды повторяют привычный жест. nsl create debian --distro debian:13 поднимает машину и проверяет подпись образа. nsl в каталоге проекта открывает оболочку в машине по умолчанию с теми же файлами. nsl run make test выполняет одну команду и возвращает код выхода на хост. Домашний каталог, /run/media и /mnt видны под /mnt/host, внутри машины — ваш пользователь, идентификаторы пользователя и группы и sudo без пароля. Сервер разработки слушает порт с хоста; графические приложения Wayland могут открыть окно на рабочем столе через Waypipe.
В каталоге семь дистрибутивов: Debian, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed и Leap. Образы пересобирают еженедельно, перед использованием NSL проверяет, что они пришли из подписанного конвейера публикации Frostyard. Для недоверенного софта есть режим --isolated: отдельная ВМ без доступа к файлам хоста, рабочему столу и действиям на хосте. Сам nsl работает от вашего пользователя и не правит группы, права устройств и sudoers — хост нужно подготовить заранее. Пока это предрелиз: v0.4.0 — первая версия новой схемы; проверенный хост — Snow Linux 13 на x86-64 с конкретными версиями systemd, QEMU и virtiofsd.
Почему это важно
Атомарные и неизменяемые Linux‑хосты удобны для повседневной машины, но плохо дружат с классическим «поставил всё в систему». Разработчики либо ломают неизменяемость, либо живут в куче ручных контейнеров и виртуалок без единого сценария. NSL пытается дать знакомую модель WSL: среда разработки как меблированная квартира, а хост — постоянный адрес, который вы не заставляете жить чужими пакетами.
Подписанные образы и еженедельная пересборка снижают риск «скачал случайный корневой образ и поехал». Режим изоляции отдельно признаёт, что не каждый эксперимент должен видеть ваш домашний каталог. Для тех, кто уже выучил жесты WSL на Windows и переехал на Linux, это снижает стоимость смены привычки.
На практике
Проект ещё без стабильного релиза, поэтому имеет смысл смотреть на него как на идею и ранний инструмент, а не как на обязательный стандарт компании. Хорошо стыкуется с атомарным рабочим столом, несколькими дистрибутивами под разные стеки и желанием не засорять хост. Слабее подходит, если вам нужна уже зрелая поддержка любого железа и сценариев вне заявленного тестового хоста.
- Проверьте зависимости хоста до установки:
nslсам пакеты и права не настраивает. - Создайте первую машину через
nsl create … --distro …и убедитесь, что проверка подписи проходит. - Держите инструменты сборки и SDK внутри машины, а исходники — на хосте через
/mnt/host. - Для сомнительных утилит включайте
--isolated, чтобы не отдавать им домашний каталог и рабочий стол. - Смотрите архитектуру и
nsl.confв документации, прежде чем строить вокругNSLпостоянный рабочий процесс.
Итог
NSL — ответ на простой запрос: оставить Linux‑хост чистым и при этом иметь несколько полноценных сред разработки с UX в духе WSL. Пока инструмент ранний, но модель уже ясна: одна ВМ, контейнеры systemd-nspawn, файлы и порты хоста, подписи образов и отдельная изоляция для недоверенного кода.



Комментарии