18 points bketelsen 2 hours ago 18 comments

One of the things that Windows really got right is WSL2. I drive an atomic Linux distro for daily use, but wanted a way to develop with multiple different distros with that same WSL UX. NSL is my answer. It is a faithful reproduction of the developer experience, powered by a single VM that hosts one or more systemd-nspawn containers with your development instances. Host file edits and port sharing come along for the ride, just like WSL. Take a look and tell me what you think... It's yet another step in my long journey to keep my host installation free from all the changing and breaking dev dependencies that force a reinstall every few months.

thayne 46 minutes ago | parent

How does this compare to distrobox?

bketelsen 11 minutes ago | parent

Distrobox mounts $HOME in the container at $HOME by default. WSL and NSL do not, and that's my preference. This means you can install tools that change your default path, change your dotfiles, etc, without affecting the host. The other obvious difference is that distrobox is powered by podman or docker, while NSL uses a VM that runs systemd-nspawn containers.

the_real_cher 46 minutes ago | parent

IS it LXC containers or docker? Or are you running a custom chroot namespace setup?

mhitza 43 minutes ago | parent

Haven't checked the actual project but he does state he uses systemd-nspawn. Which is it's own kind of container runtime.

smw 34 minutes ago | parent

He runs a systemd-nspawnd container in a "small vm", so neither really?

bketelsen 5 minutes ago | parent

none of the above. a single vm started by systemd-vmspawn which then starts one or more containers for your instances using systemd-nspawn. It ends up being fast and lightweight.

varispeed 45 minutes ago | parent

The project is cool, but please use human written text.

The website's Claudisms are unbearable.

graemep 39 minutes ago | parent

This is most useful to people who run Linux as their daily driver so rather than saying its like WSL can you explain what it offers that existing Linux containers do not?

Its also sounds different from WSL which I thought is a VM rather than a container.

> It's yet another step in my long journey to keep my host installation free from all the changing and breaking dev dependencies that force a reinstall every few months.

Something that also require a bit of explanation. What do you do that makes this such a common problem.

bketelsen 7 minutes ago | parent

WSL2 uses a shared VM that does host integration (networking, shared files, permanent storage for each instance). NSL uses the same model but with Linux native technical implementations.

As for keeping my host clean - it's the developer's curse that always gets me. Install libWhatever3.2-dev because you need it to compile something, then don't realize until next time you open Chrome that it broke your system in some subtle way. There are dozens of ways to solve this like devcontainers, docker, incus, fully separate or remote vms. I like the WSL2 model so I wanted that same UX.

rpcope1 38 minutes ago | parent

So you've just basically reimplemented LXC?

pkulak 18 minutes ago | parent

Nope. This is a VM, with containers inside. And the containers weren't "re-implemented", it uses existing systemd containers. That's what I was able to learn by skimming the site for 30 seconds. Did you not even do that? And why even be so condescending to someone else's project?

ktm5j 13 minutes ago | parent

Because it does seem like we already have tools that skin this particular cat, it's valid to wonder what value this project provides over existing solutions.. even if they chose the wrong example to compare it to. Why do you think that's condescending?

RandomGerm4n 31 minutes ago | parent

There's already Distrobox, which does exactly the same thing but isn't slop.

rao-v 30 minutes ago | parent

I have to say this is nice packaging. It is weirdly not obvious how nice it is to cleanly use a different “machine” inside your desktop.

I never thought I’d prefer WSL to even my MacBook for working with remote servers and dev but somehow I do.

I of course know the many ways to roll something like this for myself, yes dev containers are better for many things etc. but it’s wierd how good the ergonomics of a WSL like container are.

dingaling911 8 minutes ago | parent

Looks very cool.

Now all you have to do is run NSL under WSL.

bketelsen 4 minutes ago | parent

challenge accepted!

0x457 5 minutes ago | parent

I'm confused why VM + systemd-nspawn? From my understaing WSL 2 runs a single VM + something like systemd-nspawn per "linux installation", but it runs a VM because it needs linux kernel. Why not just do systemd-nspawn if you alread on linux?