- A Microsoft anunciou que todo o WSL agora é open source, o que também responde à primeira issue do repositório Microsoft/WSL: “Vai se tornar open source?”
- É possível baixar o código-fonte no Microsoft/WSL no GitHub, compilar por conta própria, adicionar recursos e corrigir bugs
- O código publicado inclui ferramentas de linha de comando, serviços, daemons para Linux e até o servidor de compartilhamento de arquivos baseado em Plan9
- O WSL é composto pela parte que roda no Windows e por vários componentes que operam dentro da máquina virtual (VM) Linux
- Ferramentas CLI:
wsl.exe, wslconfig.exe, wslg.exe
- Serviço do WSL:
wslservice.exe, responsável por iniciar a VM, executar distribuições e compartilhar arquivos
- Daemons Linux:
init, gns, localhost etc., que executam funções de rede e encaminhamento de portas
- Servidor Plan9: faz o compartilhamento de arquivos entre Windows e Linux
- Componentes que já haviam sido publicados como open source
- WSLg: componentes relacionados ao ambiente gráfico com suporte a Wayland e servidor X
- WSL2-Linux-Kernel: código-fonte do kernel Linux
- Componentes que ainda não foram abertos
Lxcore.sys: driver principal do WSL1
P9rdr.sys, p9np.dll: sistema de redirecionamento de arquivos que dá suporte ao caminho \\wsl.localhost no Windows
Contexto da abertura do código e história do WSL
- O WSL foi anunciado pela primeira vez na BUILD 2016 e incluído no Windows 10 Anniversary Update
- O WSL1 tinha uma estrutura baseada em
lxcore.sys, que processava syscalls do Linux dentro do kernel do Windows
- O WSL2 foi anunciado pela primeira vez em 2019 e melhorou compatibilidade e recursos ao usar um kernel Linux real
- Depois disso, continuou evoluindo com a adição de suporte a GPU, execução de apps GUI (
wslg) e suporte a systemd
- Desde 2021, ele é distribuído como um pacote independente do Windows por meio da Microsoft Store
- O primeiro lançamento foi o 0.47.1 (preview), e depois, com a versão 1.0.0 em 2022, o suporte foi ampliado até o Windows 10
- A partir do Windows 11 24H2, o WSL embutido anterior está sendo substituído pelo novo WSL baseado em pacote
- O
wsl.exe continua presente para ajudar na transição dos usuários
Versão mais recente e recursos
- A versão mais recente é o WSL 2.5.7, aprimorado ao longo de 4 anos por meio de notas de lançamento no GitHub que já somam cerca de 9 páginas
- Entre as principais melhorias estão rede espelhada, DNS tunneling, Session 0 e suporte a proxy/firewall
Contribuições da comunidade
- Ao longo dos anos, a comunidade contribuiu para melhorar o WSL com relatórios de bugs, sugestões de recursos e análises não oficiais
- Mesmo antes da publicação do código-fonte, já havia contribuições relevantes na prática, e agora será possível contribuir diretamente com código
- A Microsoft agradece o apoio dessa comunidade e espera uma sinergia ainda maior no desenvolvimento do WSL daqui para frente
Como contribuir
- Se você tiver curiosidade sobre a estrutura do código-fonte ou a implementação de recursos, ou quiser melhorar algum ponto
- é possível participar no repositório microsoft/WSL
- dá para contribuir de várias formas, como compilando o projeto, enviando PRs e reportando issues
6 comentários
Do ponto de vista de quem usa Endeavour +lustre / Windows 11 + WSL + WSA,
o segundo é mais prático em termos de conveniência.
Mas, em desempenho, o primeiro é melhor.
Pelo visto, a equipe do WSL também sofreu muitos cortes desta vez…
Ultimamente, a postura da MS tem sido meio essa de, quando falta gente, abrir o código e chamar de projeto tocado pela comunidade kkk..
Só para desencalhar, né.
O WSL1 é a melhor máquina para um ambiente de desenvolvimento cruzado. O IO também é rápido, e comandos baseados em Linux podem ser executados imediatamente. O WSL2 é mais lento para compilação cruzada do que o 1.
Comentários do Hacker News
Sempre que deixo um comentário elogiando o WSL no Hacker News, sinto como se estivesse pagando um imposto de karma. Minha impressão é que o WSL é até mais poderoso que o Linux, porque permite rodar várias versões de Linux ao mesmo tempo com muita facilidade em uma única máquina. O grande atrativo, na minha opinião, é poder usar de imediato no desktop ou notebook, sem configuração extra nem scripts especiais, com suporte a dispositivos como
docker, armazenamento local, mapeamento de rede etc. Por exemplo, se um projeto precisa de Ubuntu22 e outro de Ubuntu24, é ótimo não precisar ficar preso à preocupação com atualizações do sistema operacionalDizer que é "mais poderoso que o Linux" é exagero; na prática, o WSL é uma máquina virtual. O principal ponto forte do WSL é oferecer automação para várias conveniências. Mas argumenta-se que um ambiente realmente mais conveniente é aquele que nem precisa de VM. Ferramentas como Distrobox e toolbx oferecem capacidades parecidas, e no NixOS também dá para testar ambientes Linux comuns com facilidade. Além disso, há aceleração por hardware, apps gráficos funcionando direto, ausência dos problemas lentos da bridge 9p e também não surgem questões como a bolha de memória da VM. O WSL é revolucionário para usuários de Windows, mas usuários de Linux não precisam desse tipo de VM
No Linux também dá para fazer algo parecido com Distrobox, mas reconheço que poder operar Windows + WSL juntos é realmente atraente. Se a Microsoft lançasse uma edição Dev com menos software desnecessário, anúncios, Copilot e telemetria excessiva, e oferecesse hardware no nível de um MacBook, acho que conseguiria atrair de volta muitos desenvolvedores que saíram da Apple. Pessoalmente, alternando entre Mac e Linux, há aspectos de usabilidade em que prefiro a combinação Windows + WSL. PowerToys, WSL, PowerShell e a automação de setup do PC via PowerShell + Winget DSC são excelentes, mas a falta de consideração com o usuário no Windows e o tempo excessivo das atualizações são insuportáveis. Seria melhor se adotassem uma base imutável, como no macOS, com atualizações baseadas em imagem. Outro motivo de frustração no lado do Windows é a falta de desempenho de nível M4 Pro em laptops
A afirmação de que o WSL é "mais poderoso que o Linux" é daquelas que merecem perder karma. O WSL é bom e eu uso todos os dias, mas é fato que rodar Linux em hardware suportado oferece uma experiência melhor. Assim como uma VM não pode ser tão boa quanto o nativo, software de Windows também funciona melhor no Windows. Comparado ao nativo, no WSL a E/S é mais lenta, os gráficos têm atraso e erros, às vezes há crashes, gerenciamento ineficiente de memória e problemas de rede. Em um computador muito potente, usando mais CLI, o WSL pode ser conveniente, mas no fim depende do ambiente de que cada pessoa precisa
WSL é, na verdade, Linux. Especialmente a partir do WSL2, que passou de vez a ter estrutura de VM; já o WSL1, que rodava no kernel do Windows, era algo bem interessante. Ainda assim, o sistema de arquivos NTFS é lento, e o fato de ter que lidar com o próprio Windows é uma grande fonte de insatisfação. Quanto ao karma, é só um número, então não vale a pena se preocupar com isso
Para mim, o WSL é bem instável, e toda vez que o computador volta do modo de suspensão preciso reiniciar por causa de problemas de rede entre a VM e o host. Se trabalho no diretório de usuário do Windows, comandos
gitlevam vários segundos por causa da lentidão do driver do sistema de arquivos, então acabo tendo que manter dois diretórios home. No processo de setup também havia muitos problemas obscuros para resolver, como DNS complicado, VPN, erro de prioridade de rede e inconsistências na sincronização de horário. No fim, rebootar o Windows virou rotina. Eu não preciso usar vários sistemas operacionais, e na empresa quase todas as ferramentas rodam em uma VM Linux; esse é o único jeito que faz sentido. O sistema operacional de fora só cria problemas e exige tarefas mais complexas do que o necessário por causa da interação entre os dois sistemasQuando o WSL foi lançado, eu fiquei muito feliz. Parecia que o sonho de unificar jogos e desenvolvimento em um único PC com Windows tinha virado realidade. Mas, com o tempo, vários probleminhas foram se acumulando, como instalação de pacotes e questões de fronteira entre sistemas operacionais, e tudo foi ficando mais áspero. Com o Proton da Valve e a melhora do suporte a jogos no Linux, migrei completamente para Ubuntu e NixOS. Agora tenho um pouco de inconveniência no lado dos jogos, mas o ambiente de desenvolvimento está muito mais confortável. Tirando o fato de alguns jogos AAA não funcionarem, acho a experiência melhor do que Windows + WSL
Passei por algo parecido e, hoje, instalar Linux parece até mais fácil. Com os recursos de spyware do Windows, acho que sobra cada vez menos motivo para usá-lo
Exceto no caso de usar placa de vídeo Nvidia
Pergunta sobre em quais jogos houve problema
Acho que quase todo mundo já passou por isso. Se o Windows não tivesse o fator jogos (GPU), hoje teria bem menos relevância. Também lembro da confusão em projetos antigos, mudando o ambiente de build entre
msvc,cygwin,msys2etc. Hoje até dá para fazer builds com certa facilidade no WSL, mas só o processo de mexer em uma variável de ambiente já me desgasta, e eu não quero repetir esse tipo de abordagem nunca maisEu, na verdade, recomendo o caminho oposto: usar Windows em máquina virtual no Linux. Se você chega ao ponto de querer usar Linux no Windows, melhor simplesmente migrar para Linux de vez e não olhar para trás. Não voltei ao Windows nos últimos 15 anos. Considerando a realidade atual do Windows, eu hesitaria em usá-lo até mesmo em VM
Em trabalhos ligados a GPU, como jogos e Adobe suite, rodar Windows em VM exige passar uma GPU separada para a VM, e quem não tem isso precisa aceitar um ambiente sem aceleração, então essa abordagem não é simples. Se você rodar Photoshop com o driver QEMU QXL, o desempenho é péssimo, e o VirGL nem suporta guest Windows. VMWare e VirtualBox são um pouco melhores, mas ainda assim não chegam perto do nativo
Acho que, na maioria dos tópicos sobre Windows, existe uma divisão clara entre quem precisa de Windows por causa de apps de produtividade e quem não precisa. No meu caso, uso apps de produtividade ligados a GPU, então VM não serve e acabo precisando usar Windows de forma nativa. Para quem usa só apps leves, máquina virtual pode bastar, mas para trabalho mais pesado, como CAD ou jogos, não parece adequado
Depois de usar só Linux por anos, voltei para Windows e depois para Mac. Problemas de compatibilidade do
wine, alternativas de software inacabadas (por exemplo, o GIMP não substitui o Photoshop) e a degradação visual do desktop por misturar apps Qt e GTK mostram que Linux não é uma solução universalEm resposta, há o relato de que dispositivos de VR como o Valve Index simplesmente não funcionam direito nesse tipo de ambiente, ou seja, Linux rodando Windows em VM. Sou usuário hardcore de Linux desde criança, mas casos especiais como esse existem, então é difícil generalizar de forma absoluta
Como referência, foi compartilhado o link oficial de imagens de VM de avaliação do Windows, com aviso de que, quando a avaliação expira, a área de trabalho fica preta e o PC desliga a cada hora. As imagens mais recentes não são atualizadas há mais de seis meses, mas ao se registrar é possível obter a ISO
O nome Windows Subsystem for Linux sempre me confunde. À primeira vista, parece alguma versão oficial do Wine, mas na verdade é um subsistema do Windows para Linux. Soa como se a Microsoft estivesse dando funcionalidades ao Linux, o que me incomoda
Foi dito que a Microsoft não podia começar o nome do projeto com 'Linux', então acabou ficando WSL
A nomenclatura vem de um projeto antigo chamado Windows Subsystem for Unix. Dizem que o nome sempre funcionou de um jeito diferente do que a expectativa sugeria
Foi proposta, de forma espirituosa, uma melhoria ambígua no nome: subsistema do Windows para Linux
Concordo que é um subsistema para rodar Linux no Windows, mas o nome é confuso
Nos últimos anos venho desenvolvendo ocasionalmente com WSL. Quando funciona bem, é excelente, mas quando algo se enrola vira um pesadelo. Tive problemas constantes com rede, VPN, XServer, escala do Windows e gráficos com aceleração por hardware. Na prática, parece que passei mais tempo resolvendo problemas do que desenvolvendo, e nunca senti que isso realmente melhorou. O WSL é rápido e poderoso, mas para uso diário é um ambiente exigente demais para mim. Em vez disso, uso MSYS2 como principal; é mais lento, mas pelo menos é estável, e essa é sua maior vantagem
Na semana passada houve demissões em massa na Microsoft mesmo após resultados recordes; fico pensando se isso pode ser um efeito colateral disso
Acho que, em uma empresa grande, uma demissão de 3% praticamente não tem impacto nenhum, a menos que eliminem uma organização inteira ou algum projeto por completo. Pelo contrário, empresas grandes frequentemente têm pessoal em excesso, então esse nível não significa muita coisa
Uma decisão, preparação e execução de open source desse tipo em uma big tech jamais seria um projeto que acontece em apenas uma ou duas semanas
Há a preocupação de que, com o clima geral atual, seja difícil enxergar de forma puramente positiva este Build e as notícias relacionadas
Concordo que, pelo anúncio, isso parece ser resultado de uma preparação de longo prazo, então não tem relação com as demissões recentes
Foi observado que o
kernel side driverlxcore.sys, responsável pelo funcionamento do WSL 1, não está incluído nesta abertura de código. Também houve surpresa ao ver que o WSL 1 ainda é suportado; a expectativa era que já estivesse apenas em modo de manutençãoA parte que realmente me interessa é justamente
lxcore.sys. Eu ainda uso apenas WSL1 e até já fiz hacks curiosos, atravessando a ABI ou tunelando o Windows para o user space do Linux. Espero que, com open source, fique mais fácil mexer nissoPelo que ouvi, tanto WSL1 quanto WSL2 continuam sendo totalmente suportados. Não é só uma distinção numérica
É preciso verificar a licença e os detalhes. Pode ser algo positivo, mas também pode ser um pretexto para a Microsoft pedir ajuda gratuita depois de demitir desenvolvedores
Eu não sou usuário de Windows, mas considero o WSL excelente. Só que o maior motivo de muitos usuários de Windows criticarem o Linux é que ele "não se parece com Windows", e do ponto de vista de quem usa Linux, justamente o fato de o Linux não se parecer com Windows é algo bom. Espero que usuários de Windows não tentem transformar o Linux em um Windows gratuito e sem anúncios. Se o WSL tiver o efeito de manter usuários de Windows no Windows, eu até prefiro assim
Espero que os bugs que aparecem ao trabalhar com o sistema de arquivos do Windows dentro do WSL sejam corrigidos logo