WSLg – Windows Subsystem for Linux GUI

com o WSLg, o Windows Subsystem for Linux alcança um novo patamar de usabilidade, permitindo rodar aplicações gráficas de forma eficiente e integrada. Assim, a facilidade de instalação e uso, aliada à flexibilidade da arquitetura que une RDP e Wayland/X11, garante uma experiência fluida com qualquer distribuição Linux suportada. Com isso, é possível aproveitar o melhor dos dois mundos sem perder a capacidade de utilizar ferramentas gráficas essenciais no Linux diretamente no Windows.

O WSLg (Windows Subsystem for Linux GUI) veio para resolver uma das grandes limitações do WSL2: a incapacidade de lidar com interfaces gráficas. Assim, com o WSLg, é possível rodar aplicações gráficas nativas do Linux diretamente no Windows, sem necessidade de virtualização ou dual boot. Então, neste artigo, vamos explorar como essa nova funcionalidade funciona, a arquitetura envolvida e como você pode utilizá-la para melhorar sua experiência de desenvolvimento e uso de ferramentas gráficas no Windows.

Bom, além desse artigo, aqui no blog também temos diversos outros artigos sobre kubernetes, desenvolvimento, gestão, devops, etc. Veja alguns exemplos: Diferenças entre Paradigmas, Axiomas e HipótesesDesenvolver na empresa ou comprar prontoFuja da otimização prematura, entre outros.

Problemas do WSL sem GUI

O WSL2 até algum tempo não tinha capacidades de lidar com telas gráficas. Não demorou muito para que as reclamações chegassem. Então, veja que o WSL2 poderia ser utilizado para usar navegadores, IDEs, editores de código ou até ferramentas visuais como Gimp. Mas simplesmente não dava.

Note que algumas ferramentas pedem login abrindo diretamente o navegador. Pois bem, temos um problema no WSL2 sem o GUI porque simplesmente não é possível se autenticar. Já em outros cenários, como o caso do Gimp, o usuário perde a possibilidade de usar, exigindo que se tenha um Linux em dual boot ou virtualizado. Por conta de problemas como esse surgiu o WSLg.

Como funciona o WSLg – Windows Subsystem for Linux GUI

Arquitetura do WSLg - Windows Subsystem for Linux GUI

O WSLg possui uma arquitetura bastante flexível que gera um impacto pequeno no windows e no linux envolvido. Basicamente no Windows há um cliente de RDP que faz remoting para uma serviço desse tipo. As telas exibidas são, na verdade, a exibição de um remote desktop.

Prosseguindo, há um Linux novo nesse cenário, um Microsoft CBL Mariner, também conhecido como Azure Linux. Essa é uma distribuição mantida pela Microsoft para sua nuvem e para o WSLg. Essa distribuição tem diversos recursos instalados, mas o que destaco é o FreeRDP que expõe as telas para o cliente RPD já citado.

Resumindo, o Linux usuário abre a aplicação utilizando o Wayland e o X11. Essas ferramentas gerenciam sa exibição de janelas no Linux. O Wayland mais moderno e o X11 mais antigo, mas ambos disponíveis para aumentar a compatibilidade. O Linux expõe informações sobre as janelas, cliques, manipulações para o Azure Linux que por sua vez comunica para o cliente RDP.

Toda essa engenharia faz com que a exibição gráfica funcione com qualquer distribuição Linux instalada com o WSL2, com praticamente nada instalado, jogando a maior parte do trabalho para a distro intermediária.

Como usar o WSLg – Windows Subsystem for Linux GUI

Não há nenhum segredo. Entretanto é fundamental ter o WSL2 atualizado para suportar essa característica. Para atualizar basta rodar a linha de comando a seguir:

wsl --update

Após isso, para testar, instalei o Gimp, editor de imagens (análogo a alguns produtos Corel Draw). Veja a seguir a linha de comando para instalar em meu Ubuntu do WSL2:

apt install gimp
Tela do Ubuntu rodando o comando apt install gimp

Veja a seguir o gimp rodando em meu Windows 11. Pela esquerda é possível ver também o Windows Terminal com o Ubuntu rodando, exibindo as manipulações feitas no gimp e medida que ocorrem.

Tela do Windows exibindo a aplicação Gimp, que só funciona no Linux.

Conclusão de WSLg – Windows Subsystem for Linux GUI

Por fim, com o WSLg, o Windows Subsystem for Linux alcança um novo patamar de usabilidade, permitindo rodar aplicações gráficas de forma eficiente e integrada. Assim, a facilidade de instalação e uso, aliada à flexibilidade da arquitetura que une RDP e Wayland/X11, garante uma experiência fluida com qualquer distribuição Linux suportada. Com isso, é possível aproveitar o melhor dos dois mundos sem perder a capacidade de utilizar ferramentas gráficas essenciais no Linux diretamente no Windows.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.