Show HN: NSL – WSL para Linux
Uma nova ferramenta chamada NSL pretende levar ao Linux uma experiência no estilo WSL2 ao executar uma VM leve que hospeda múltiplos contêineres systemd-nspawn, fornecendo ambientes “pet” isolados para desenvolvimento sem poluir o sistema host. Os comentaristas a comparam a opções existentes como Distrobox, toolbx, LXC/Incus e VMs comuns, debatendo trade-offs em isolamento, desempenho, integração com o host e facilidade de uso. Alguns elogiam a UX e o empacotamento por tornar esse fluxo de trabalho mais acessível, enquanto outros questionam a necessidade de mais uma camada e demonstram desconforto com a aparente dependência do projeto de documentação gerada por IA.
Arquitetura e Abordagem
- A NSL pretende trazer para o Linux uma experiência semelhante à do WSL2: uma única VM “host” executando múltiplos contêineres systemd-nspawn.
- A VM é iniciada via
systemd-vmspawn; dentro dela, as instâncias são contêineres systemd-nspawn, não Docker/Podman nem LXC. - Isso é apresentado como VMs/instâncias “pet” com integração limitada, porém conveniente, com o host, em vez de contêineres descartáveis.
Comparação com Ferramentas Existentes (Distrobox, toolbx, LXC/Incus, VMs etc.)
- Distrobox/toolbx: normalmente montam o
$HOMEdo host e são projetados como sobreposições sobre o ambiente do host; a NSL deliberadamente não faz isso, favorecendo o isolamento de dotfiles, PATH e bibliotecas do sistema. - LXC/Incus: fornecem sistemas “completos” baseados em contêineres sem uma VM; a NSL adiciona uma camada de VM para isolamento mais forte e a opção de um kernel diferente.
- VMs tradicionais (qemu/multipass/Vagrant): a NSL é proposta como mais leve, headless por padrão, compartilhando a sessão Wayland do host quando necessário em vez de executar um desktop completo.
- Alguns a veem como redundante diante das ferramentas existentes; outros argumentam que o principal diferencial é a UX e o empacotamento, não a capacidade bruta.
Casos de Uso e Motivação
- O objetivo principal é manter o SO do host “limpo” de dependências de desenvolvimento e experimentos que podem quebrar o sistema de forma sutil.
- Caso de uso comum: executar IDEs ou toolchains de desenvolvimento em uma distribuição diferente da do host, com acesso fácil ao terminal e aos arquivos, mas sem poluir o host.
- Alguns usuários mencionam usá-la para permitir com segurança que agentes de IA instalem dependências em nível de sistema.
Segurança e Isolamento
- Vários comentários enfatizam que contêineres são fronteiras de segurança mais fracas do que VMs; a camada de VM é vista como isolamento mais forte, embora não perfeito.
- Surge a preocupação de que a integração com o host da NSL (arquivos, portas, janelas) ainda possa permitir saídas da sandbox, a menos que flags extras de isolamento sejam usadas, o que pode prejudicar a UX.
Desempenho e Questões Práticas
- Pergunta-se sobre o impacto de desempenho em relação ao nativo ou a contêineres puros; não são fornecidos benchmarks concretos no fio.
- O suporte a gráficos via Wayland compartilhado é apontado como um ponto positivo.
- Alguns pedem demos e explicações mais claras na página inicial sobre como a NSL difere de Docker/Distrobox e quais problemas ela resolve de forma única.
Docs, Nome e Ecossistema
- Vários comentários observam o uso intenso de LLMs no site/README; as reações vão de “Claudisms insuportáveis” a “surpreendentemente bom para algo assistido por LLM”.
- O nome (NSL/WSL) e a história de “Windows Subsystem for X” são discutidos, em sua maioria como curiosidade.
- Alguns se preocupam com mais fragmentação de ferramentas em vez de adotar soluções existentes de contêiner/dev-env (Nix, mise etc.).