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 $HOME do 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.).