Pinguim na janela: sobre o potencial e as perspectivas do WSL2

Olá Habr!

Enquanto a venda de verão estiver em pleno andamento, gostaríamos de convidá-lo a discutir um dos tópicos mais ambiciosos nos quais trabalhamos ultimamente - a interação do Windows e Linux, relacionada, em particular, ao desenvolvimento do sistema WSL . O WSL 2 está a caminho e oferecemos uma breve visão geral dos recursos que nos aguardam neste subsistema, bem como uma previsão para uma maior integração do Windows e Linux.



Em maio deste ano, a Microsoft anunciou que o WSL2, a versão mais recente do subsistema Windows no Linux, será executado em um kernel Linux completo montado na empresa.
Portanto, pela primeira vez, a Microsoft inclui o kernel do Linux no Windows como um de seus componentes. A Microsoft também está introduzindo uma linha de comando no Windows que expandirá os recursos do PowerShell e WSL.

Tanto o kernel do Linux para WSL2, criado pela Microsoft, quanto a nova linha de comando do Windows são de interesse principalmente dos desenvolvedores.

"Esta é a jogada mais poderosa no jogo contra a AWS", disse Joshua Schwartz, chefe de digitalização da AT Kearney, uma empresa de consultoria.

O futuro da Microsoft não está relacionado ao mercado de PCs, embora continue mantendo sua posição nesse segmento. Será muito mais importante conquistar uma posição no mercado de nuvem, um dos componentes dos quais no futuro poderão se tornar PCs de mesa.

O que o WSL2 faz


O WSL2 é a infraestrutura de subsistema mais recente do Windows para Linux. Permite melhorar drasticamente o desempenho do sistema de arquivos e oferece total compatibilidade com as chamadas do sistema.

Um dos principais pedidos da comunidade WSL estava relacionado ao refinamento da funcionalidade. O WSL2 possui muito mais ferramentas Linux do que o WSL, em particular o Docker e o FUSE.
O WSL2 lida com operações intensivas de arquivos, em particular o git clone, a instalação do npm, a atualização do apt e a atualização do apt. O aumento real da velocidade depende da aplicação específica e de como ela interage com o sistema de arquivos.

Testes anteriores mostraram que o WSL2 é cerca de 20 vezes mais rápido que o WSL1 para descompactar o tar do zip. Ao usar o git clone, npm install e cmake em vários projetos, o sistema mostrou um aumento de produtividade de duas a cinco vezes.

Isso ajudará a ganhar a confiança dos desenvolvedores?


Em essência, a Microsoft busca obter aceitação e credibilidade na comunidade de desenvolvimento, desenvolvendo sua própria versão do kernel Linux para dar suporte aos processos WSL2, disse Cody Swann, CEO da Gunner Technology.

“Além do desenvolvimento estritamente para o Windows, a criação de todos os outros aplicativos - nuvem, dispositivos móveis e aplicativos da web - no PC foi extremamente inconveniente, e é por isso que o desenvolvedor de alguma forma teve que baixar a distribuição Linux em paralelo com o sistema operacional Windows. A Microsoft reconheceu isso e propôs uma solução ”, conclui.

É improvável que a introdução do kernel Linux nativo afete seriamente o trabalho com o sistema do ponto de vista de um usuário comum. No entanto, nesse caso, surgem oportunidades para uma interação mais próxima entre os serviços da Microsoft e o sistema operacional Linux.
Essa iniciativa da Microsoft é realmente muito competente, pois ajuda a penetrar mais profundamente na comunidade de desenvolvedores, além de usar ativamente produtos que outra pessoa está desenvolvendo - ou seja, conectar-se ao código aberto, disse Swann.

Bem-vindo à nova microsoft


A tendência para a criação e suporte do kernel Linux "especialmente para Windows" reflete a tendência decisiva de desenvolvimento em direção ao código aberto, promovida pela CEO Satya Nadella. A Microsoft não é a mesma de Gates e Balmer, quando tudo era mantido atrás de uma cerca de madeira e ninguém pensava em interoperabilidade.

“Satya transformou completamente a Microsoft em uma plataforma muito mais moderna, e essa estratégia valeu a pena. Olá, uma capitalização de trilhões de dólares ”, diz Schwartz.

De acordo com Charles King, analista chefe da Pund-IT, os dois principais pontos fortes da Microsoft são eficiência e segurança.

"Ao usar ativamente suas próprias realizações sérias - recursos e ferramentas - a empresa pode garantir aos clientes que o kernel estará totalmente atualizado e equipado com as últimas correções e correções para garantir a segurança completa", acrescenta.

Os desenvolvedores também são vencedores


Os binários do Linux executam muitas funções usando chamadas do sistema, por exemplo, acessando arquivos, solicitando memória e criando processos. O WSL1 conta com uma camada de conversão que interpreta muitas dessas chamadas do sistema e permite que elas interajam com o kernel do Windows NT.

A parte mais difícil é implementar todas as chamadas do sistema. Como isso não foi feito no WSL1, alguns aplicativos não puderam funcionar lá. O WSL2 apresenta muitos aplicativos novos que normalmente funcionam nesse ambiente.

A nova arquitetura permite que a Microsoft faça as otimizações mais recentes para o kernel Linux muito mais rapidamente do que com o WSL1. A Microsoft pode atualizar o kernel WSL2, em vez de reimplementar todas as restrições.

Ferramenta de código aberto completa


O desenvolvimento da Microsoft de seu próprio kernel Linux foi o culminar de muitos anos de trabalho do Linux Systems Group, bem como de muitas outras equipes da Microsoft, disse Jack Hammons, gerente de programas do Linux Systems Group, Microsoft.

O kernel fornecido para o WSL2 será totalmente de código aberto, e a Microsoft publicará instruções sobre como criar um kernel no GitHub. A empresa interagirá com os desenvolvedores que desejam ajudar o projeto e estimular mudanças para cima.

Os desenvolvedores da Microsoft criaram o WSL2 usando os sistemas de integração contínua e entrega contínua da empresa. Este software será mantido pelo sistema de atualização do Windows e será completamente transparente para o usuário. O kernel permanecerá relevante e incluirá todos os recursos da mais recente ramificação estável do Linux.

Para garantir a disponibilidade da fonte, a empresa espelha os repositórios localmente e monitora constantemente o conteúdo da lista de discussão do Linux sobre questões de segurança e também trabalha com várias empresas que oferecem suporte ao trabalho com bancos de dados em um ambiente virtual corporativo (CVE). Isso garante que as atualizações mais recentes do Linux sejam levadas em consideração no kernel Linux da Microsoft e que todas as ameaças emergentes sejam eliminadas.

Alterações a montante são vinculativas


A Microsoft garante que todas as alterações no kernel serão distribuídas na direção upstream - este é um aspecto importante da filosofia do Linux. O suporte para patches downstream está associado a complexidade adicional; além disso, essa prática geralmente não é aceita na comunidade de desenvolvimento livre.

O objetivo da Microsoft, que está usando ativamente o Linux, é se tornar um membro disciplinado dessa comunidade e disponibilizar as alterações para a comunidade. Para obter estabilidade dos ramos associados ao suporte de longo prazo, alguns patches - por exemplo, contendo novos recursos - podem ser incluídos apenas em novas versões do kernel e não ser portados para a versão atual do LTS no modo de compatibilidade com versões anteriores.

Quando as fontes do kernel da WSL estão disponíveis, elas consistem em links para um conjunto de patches e de uma parte estável de longa data das fontes. A Microsoft espera que, com o tempo, essa lista diminua à medida que os patches se espalhem na direção upstream, e novos patches locais sejam adicionados para dar suporte aos recursos mais recentes da WSL.

Design de janela mais agradável


A Microsoft também anunciou o lançamento da próxima versão "inverno" do Windows Terminal, um novo aplicativo para usuários que trabalham com ferramentas e shells de linha de comando, em particular, Prompt de Comando, PowerShell e WSL.



Terminal do Windows

O Windows Terminal 1.0 oferece muitas configurações e opções de configuração que oferecem mais controle sobre o design da janela do terminal, bem como sobre shells / perfis que devem abrir como novas guias.

As configurações serão salvas em um arquivo de texto estruturado, facilitando a configuração e o design da janela do terminal ao seu gosto.

A Microsoft pára de atualizar o console existente do Windows e cria um novo do zero, decidindo adotar uma nova abordagem. O Terminal do Windows instala e é executado em paralelo com o aplicativo existente do Windows Console, que sai da caixa.

Como isso funciona


Quando um usuário do Windows 10 inicia diretamente o Cmd / PowerShell / etc, o processo anexado à instância normal do console é acionado. O mecanismo de configuração do novo terminal permite que os usuários do Windows criem muitos perfis para todos os shells / aplicativos / ferramentas desejados, seja no PowerShell, linha de comando, Ubuntu ou mesmo com conexões SSH para dispositivos do Azure ou da Internet das Coisas.

Esses perfis podem incluir sua própria combinação de design e tamanho da fonte, temas de cores, níveis de desfoque ou transparência do plano de fundo. Além disso, os usuários poderão escolher uma nova fonte monoespaçada para que a janela do terminal pareça mais moderna e mais fria. Essa fonte fornece ligaduras de programador, será apresentada em domínio público e armazenada em seu próprio repositório.

As principais vantagens da nova interface de comando do Windows são muitas guias e texto bonito. O suporte para muitas abas foi considerado o pedido mais popular para o desenvolvimento do terminal. Um texto bonito é obtido graças ao mecanismo de renderização baseado no DirectWrite / DirectX, equipado com aceleração de GPU.

O mecanismo exibe ícones de texto, glifos e caracteres especiais em fontes, incluindo ideogramas chinês, japonês e coreano (CJK), emojis, caracteres powerline, ícones e ligaduras de programadores. Além disso, esse mecanismo exibe o texto muito mais rapidamente que o GDI usado anteriormente no console.

A compatibilidade com versões anteriores permanece em ordem, embora você possa tentar o Terminal do Windows, se desejar.

Linha do tempo: como será


A Microsoft fornecerá o Terminal do Windows através da Microsoft Store no Windows 10 e o atualizará regularmente. Assim, os usuários sempre trabalharão com as versões mais recentes e as melhorias mais recentes - praticamente sem nenhum esforço extra.

A Microsoft planeja lançar um novo terminal neste inverno. Depois que a Microsoft lançar o Windows Terminal 1.0, os desenvolvedores continuarão a lidar com muitos recursos já reservados na lista de pendências.

O código-fonte do Windows Terminal e do Windows Console já foi carregado no GitHub.

O que podemos esperar no futuro?


A possibilidade de a Microsoft usar seu próprio kernel Linux para outros fins, por exemplo, para desenvolver sua própria distribuição Linux, parece um tanto hipotética hoje.

Provavelmente, o resultado depende se a Microsoft pode detectar uma demanda perceptível por esse produto e quais oportunidades comerciais esse desenvolvimento pode potencialmente abrir, diz Charles King.

Ele acha que, no futuro próximo, a empresa concentrará seu trabalho principal em garantir a compatibilidade cada vez mais estreita do Windows e Linux e seu complemento mútuo.

Joshua Schwartz acredita que, neste caso, será necessário avaliar quais investimentos serão feitos neste trabalho e qual é o retorno sobre ele. Se hoje a Microsoft fosse uma empresa muito jovem, provavelmente faria tudo com base no Linux. No entanto, portar todas as melhores práticas que a Microsoft já possui para a arquitetura nativa do Linux hoje parece um projeto caro e complexo que dificilmente compensa. Os amantes do Linux obterão o Linux por conta própria e a arquitetura básica permanecerá intocada.

Quando a Apple inventou o Mac OS novamente em 2000, o sistema operacional foi baseado no BSD Unix, que é mais semelhante ao Linux do que ao DOS. Hoje, a nova versão do Microsoft Windows é criada especificamente com base no Linux.

Talvez uma nova porta esteja se abrindo diante de nós?


O kernel Linux da Microsoft pode abrir caminho para uma colaboração mais estreita entre os serviços do Windows e o sistema operacional Linux. De fato, esses desenvolvimentos da Microsoft atestam o fato de que a própria Microsoft já entende que hoje quase não existem clientes que preferem existir em um mundo onde o Windows está em todo lugar.

É muito mais sensato usar tecnologias e sistemas heterogêneos que melhor atendam aos requisitos de negócios e situações práticas específicas.

A questão estratégica mais importante é: que novas oportunidades estratégicas isso abre para a própria plataforma da Microsoft?

O Azure, o ecossistema baseado em nuvem da Microsoft, já oferece um tremendo suporte ao Linux. Anteriormente, o Windows suportava bem o Linux com máquinas virtuais.

As mudanças fundamentais que ocorrem hoje estão relacionadas ao fato de que agora os processos Linux serão executados nativamente no kernel do Windows, o que significa que trabalhar com o Linux a partir do Windows será muito mais rápido do que nas máquinas virtuais. É provável que, como resultado, o Azure seja enriquecido por toda uma camada de engenheiros que usam Linux em escala industrial.

Source: https://habr.com/ru/post/pt459844/


All Articles