A Microsoft começou a testar o suporte para execução de aplicativos Linux GUI no Windows

A Microsoft anunciou o início dos testes da capacidade de executar aplicativos Linux com interface gráfica em ambientes baseados no subsistema WSL2 (Windows Subsystem for Linux), projetado para executar arquivos executáveis ​​​​do Linux no Windows. Os aplicativos são totalmente integrados à área de trabalho principal do Windows, incluindo suporte para colocação de atalhos no menu Iniciar, reprodução de áudio, gravação de microfone, aceleração de hardware OpenGL, exibição de informações sobre programas na barra de tarefas, alternância entre programas usando Alt-Tab, cópia de dados entre Windows - e programas Linux através da área de transferência.

A Microsoft começou a testar o suporte para execução de aplicativos Linux GUI no Windows

Para organizar a saída da interface da aplicação Linux para o desktop principal do Windows, é utilizado o gerenciador composto RAIL-Shell desenvolvido pela Microsoft, utilizando o protocolo Wayland e baseado na base de código Weston. A saída é realizada usando o backend RDP-RAIL (RDP Remote Application Integrated Locally), que difere do backend RDP anteriormente disponível em Weston porque o gerenciador composto não renderiza a área de trabalho em si, mas redireciona superfícies individuais (wl_surface) sobre o RDP Canal RAIL para exibição na área de trabalho principal do Windows. XWayland é usado para executar aplicativos X11.

A Microsoft começou a testar o suporte para execução de aplicativos Linux GUI no Windows

A saída de áudio é organizada usando o servidor PulseAudio, que também interage com o Windows usando o protocolo RDP (o plugin rdp-sink é usado para saída de áudio e o plugin rdp-source é usado para entrada). O servidor composto, XWayland e PulseAudio são empacotados na forma de uma minidistribuição universal chamada WSLGd, que inclui componentes para abstração dos subsistemas gráficos e de áudio, e é baseada na distribuição CBL-Mariner Linux, também usada na infraestrutura de nuvem da Microsoft. . WSLGd é executado usando mecanismos de virtualização e virtio-fs é usado para compartilhar o acesso entre o ambiente convidado Linux e o sistema host Windows.

FreeRDP é usado como um servidor RDP iniciado no ambiente WSLGd Linux e mstsc atua como um cliente RDP no lado Windows. Para detectar aplicativos gráficos Linux existentes e exibi-los no menu do Windows, um manipulador WSLDVCPlugin foi preparado. Com distribuições Linux convencionais como Ubuntu, Debian e CenOS instaladas em um ambiente WSL2, o conjunto de componentes executados no WSLGd interage fornecendo soquetes que tratam de solicitações usando os protocolos Wayland, X11 e PulseAudio. As ligações preparadas para WSLGd são distribuídas sob a licença do MIT.

A instalação do WSLGd requer o Windows 10 Insider Preview, pelo menos, versão 21362. No futuro, o WSLGd estará disponível para edições regulares do Windows sem a necessidade de participar do programa Insider Preview. A instalação do WSLGd é realizada executando o comando padrão “wsl —install”, por exemplo, para Ubuntu - “wsl —install -d Ubuntu”. Para ambientes WSL2 existentes, a instalação do WSLGd é feita usando o comando "wsl --update" (somente ambientes WSL2 que usam o kernel Linux e não a tradução de chamadas são suportados). Os aplicativos gráficos são instalados através do gerenciador de pacotes padrão da distribuição.

WSLGd fornece apenas mecanismos para saída de gráficos 2D e, para acelerar gráficos 3D baseados em OpenGL, as distribuições instaladas no WSL2 oferecem o uso de uma GPU virtual (vGPU). Drivers vGPU para WSL são fornecidos para chips AMD, Intel e NVIDIA. A aceleração gráfica é fornecida através do fornecimento de uma camada com a implementação de OpenGL sobre DirectX 12. A camada é projetada na forma do driver d3d12, que está incluído na parte principal do Mesa 21.0 e está sendo desenvolvido em conjunto com a Collabora.

A GPU virtual é implementada no Linux usando o dispositivo /dev/dxg com serviços que replicam o WDDM (Windows Display Driver Model) D3DKMT do kernel do Windows. O driver estabelece uma conexão com a GPU física usando o barramento VM. Os aplicativos Linux têm o mesmo nível de acesso à GPU que os aplicativos nativos do Windows, sem a necessidade de compartilhamento de recursos entre o Windows e o Linux. Os testes de desempenho em um dispositivo Surface Book Gen3 com GPU Intel mostraram que no ambiente Win32 nativo, o teste Geeks3D GpuTest demonstra 19 FPS, em um ambiente Linux com vGPU - 18 FPS e com renderização de software em Mesa - 1 FPS.



Fonte: opennet.ru

Adicionar um comentário