Linux development on an atomic host¶
NSpawn Subsystem for Linux
Linux development on an atomic host
Install your development tools in a Debian, Fedora or other Linux machine and leave the host alone. nsl works much like WSL: each machine keeps its packages, services and files between sessions. The machines run as systemd-nspawn containers inside a shared VM, start when you need them, and can work in your host files.
`[](https://frostyard.github.io/nsl/#%5F%5Fcodelineno-0-1)nsl create debian --distro debian:13 # verify the signed images; the first machine is the default [](https://frostyard.github.io/nsl/#%5F%5Fcodelineno-0-2)nsl # a login shell in the machine, in this directory [](https://frostyard.github.io/nsl/#%5F%5Fcodelineno-0-3)nsl run make test # one command, with its exit status `
What a machine gives you
- A shell where you need it
- Your files and your account
- Ports and windows on the host
- Seven signed distros
- Isolation when you need it
- Runs as your user
- 01 Get started Check the host, install nsl and create your first machine.
- 02 Architecture How the VM runs your machines and connects them to the host.
- 03 Command reference
--- Run `nsl` from your project directory to open a shell in the default machine, working in the same files. Use `nsl run` for a single command; its exit status comes back to the host.
--- Your `$HOME`, `/run/media/USER` and `/mnt` are available under `/mnt/host`. The machine uses your username, UID and GID, so files you create there still belong to you. You also get passwordless `sudo` inside the machine.
--- Run a development server in the machine and reach its forwarded port on host `127.0.0.1`. Wayland applications can open windows on your desktop through Waypipe.
--- Choose Debian, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed or Leap. The images are rebuilt weekly. nsl verifies that they came from the signed Frostyard publishing workflow before using them.
--- Use `--isolated` for software you don't trust. It gets its own VM, without access to your host files, desktop or host actions.
--- nsl runs as your user. You'll need the host prerequisites installed first; nsl doesn't install packages or change device permissions, groups or sudoers.
Start here
Pre-release
nsl has no stable release yet. v0.4.0 is the first release of this design; v0.3.0 and earlier are a retired prototype. The tested host is Snow Linux 13 on x86-64 with systemd 261.2, QEMU 10.0.13, virtiofsd 1.13.2 and GNOME Wayland.
Back to top