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

Oi, Habr!

Enquanto ainda estamos em pleno andamento liquidação de verão, gostaríamos de convidá-lo a discutir um dos maiores temas em que temos trabalhado ultimamente - a interação entre Windows e Linux, relacionado, em particular, ao desenvolvimento do sistema WSL. WSL 2 está a caminho, e aqui está uma rápida visão geral do que está por vir neste subsistema, bem como uma previsão para integração futura entre Windows e Linux.

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

Em maio deste ano, a Microsoft anunciou que o WSL2, a versão mais recente do subsistema Windows no Linux, seria executado em um kernel Linux completo desenvolvido internamente.
Esta é a primeira vez que a Microsoft inclui o kernel Linux como um componente do Windows. A Microsoft também está introduzindo uma linha de comando no Windows que expandirá os recursos do PowerShell e do WSL.

Tanto o kernel 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 forte no jogo contra a AWS”, afirma Joshua Schwartz, diretor de programas de digitalização da empresa de consultoria AT Kearney.

O futuro da Microsoft não está ligado ao mercado de PCs, embora continue a manter firmemente a sua posição neste segmento. Será muito mais importante ganhar uma posição no mercado de nuvem, um dos componentes do qual no futuro poderão ser os desktops.

O que o WSL2 faz?

WSL2 é a estrutura de subsistema Windows mais recente para Linux. Ele permite melhorar radicalmente o desempenho do sistema de arquivos e fornece compatibilidade total com chamadas do sistema.

Uma das principais solicitações da comunidade WSL estava relacionada à melhoria da funcionalidade. WSL2 executa muito mais ferramentas Linux do que WSL, principalmente Docker e FUSE.
WSL2 lida com operações com uso intensivo de arquivos, especialmente git clone, npm install, apt update e apt upgrade. O aumento real da velocidade depende do aplicativo específico e de como ele interage com o sistema de arquivos.

Os primeiros testes mostraram que o WSL2 é cerca de 20 vezes mais rápido que o WSL1 ao descompactar o tar do zip. Ao usar git clone, npm install e cmake em vários projetos, o sistema apresentou um aumento de desempenho de duas a cinco vezes.

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

Em essência, a Microsoft está buscando ganhar reconhecimento e confiança na comunidade de desenvolvedores desenvolvendo sua própria versão do kernel Linux para suportar processos WSL2, disse Cody Swann, CEO da Gunner Technology.

“Além de desenvolver estritamente para Windows, criar todos os outros aplicativos - aplicativos em nuvem, móveis, web - em um PC era extremamente inconveniente, e é por isso que o desenvolvedor de alguma forma teve que inicializar uma distribuição Linux em paralelo com o sistema operacional Windows. A Microsoft reconheceu isso e apresentou uma solução”, finaliza.

É improvável que a introdução de um kernel Linux personalizado tenha um impacto sério no sistema do ponto de vista do usuário médio. No entanto, isto abre oportunidades para uma interação mais próxima entre os serviços Microsoft e o sistema operacional Linux.
Este movimento por parte da Microsoft é realmente muito inteligente, pois ajuda a penetrar mais profundamente na comunidade de desenvolvedores, bem como a usar ativamente os produtos que outra pessoa está desenvolvendo - ou seja, conectar-se ao código aberto, diz Swann.

Bem-vindo à Nova Microsoft

A tendência de criação e manutenção de um kernel Linux “especificamente para Windows” reflete a forte direção de código aberto promovida pelo CEO Satya Nadella. A Microsoft não é mais a mesma de Gates e Ballmer, quando tudo era mantido atrás de uma cerca proprietária 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á, capitalização de um trilhão de dólares”, diz Schwartz.

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

“Ao usar ativamente seus próprios desenvolvimentos sérios – recursos e ferramentas – a empresa pode garantir aos clientes que o kernel estará completamente atualizado e equipado com os patches e correções mais recentes para garantir segurança completa”, acrescenta.

Os desenvolvedores também se beneficiam

Os binários do Linux executam muitas funções usando chamadas de sistema, como acessar arquivos, solicitar memória e criar processos. WSL1 depende de uma camada de tradução para interpretar muitas dessas chamadas de sistema e permitir que elas interajam com o kernel do Windows NT.

O mais difícil é implementar todas as chamadas do sistema. Como isso não foi feito no WSL1, alguns aplicativos não funcionaram lá. WSL2 apresenta muitos novos aplicativos que funcionam bem neste ambiente.

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

Ferramenta totalmente de código aberto

O desenvolvimento de seu próprio kernel Linux pela Microsoft foi o culminar de 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 WSL2 será totalmente de código aberto e a Microsoft publicará instruções sobre como construir tal kernel no GitHub. A empresa se envolverá com desenvolvedores dispostos a ajudar o projeto e impulsionar mudanças de baixo para cima.

Os desenvolvedores da Microsoft criaram o WSL2 usando os sistemas de integração e entrega contínua da empresa. Este software será veiculado através do sistema de atualização do Windows e será totalmente transparente para o usuário. O kernel permanecerá atualizado e incluirá todos os recursos do ramo estável mais recente do Linux.

Para garantir a disponibilidade da fonte, a empresa espelha repositórios localmente, monitora constantemente o conteúdo da lista de discussão de segurança do Linux e trabalha com diversas empresas que oferecem suporte a bancos de dados em ambientes virtuais corporativos (CVEs). Isso garante que o kernel Linux da Microsoft esteja atualizado com as atualizações mais recentes e elimina quaisquer ameaças emergentes.

Mudanças de baixo para cima tornam-se obrigatórias

A Microsoft garante que todas as alterações do kernel sejam propagadas pelo upstream, um aspecto importante da filosofia Linux. O suporte a patches downstream traz complexidade adicional; Além disso, esta prática não é comum na comunidade de código aberto.

O objetivo da Microsoft como usuário ativo do Linux é ser um membro disciplinado da comunidade e contribuir com mudanças para a comunidade. Para garantir a estabilidade das ramificações associadas ao suporte de longo prazo, alguns patches - por exemplo, aqueles que contêm novos recursos - só podem ser incluídos em novas versões do kernel e não podem ser portados para a versão LTS atual no modo de compatibilidade com versões anteriores.

Quando as fontes principais do WSL estiverem disponíveis, elas consistirão em links para um conjunto de patches e uma parte estável de longa duração das fontes. A Microsoft espera que esta lista diminua com o tempo, à medida que os patches são distribuídos upstream e novos patches locais são adicionados para oferecer suporte a novos recursos WSL.

Design de janela mais agradável

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

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

Terminal Windows

O Windows Terminal 1.0 oferece muitas configurações e opções de configuração que oferecem mais controle sobre a aparência da janela do terminal, bem como sobre os 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 não está mais refinando o console existente do Windows e está criando um novo do zero, decidindo adotar uma nova abordagem. O Terminal do Windows é instalado e executado em paralelo com o aplicativo existente do Console do Windows que vem pronto para uso.

Как это работает

Quando um usuário do Windows 10 inicia diretamente o Cmd/PowerShell/etc, um processo anexado a uma instância regular do console é acionado. O mecanismo de configuração do novo terminal permite que os usuários do Windows criem vários perfis para todos os shells/aplicativos/ferramentas desejados, seja no PowerShell, Prompt de Comando, Ubuntu ou até mesmo conexões SSH com dispositivos Azure ou IoT.

Esses perfis podem fornecer suas próprias combinações de design e tamanho de fonte, temas de cores, níveis de desfoque de fundo ou transparência. Além disso, os usuários poderão escolher uma nova fonte monoespaçada para deixar a janela do terminal mais moderna e bacana. Esta fonte contém ligaduras de programador; ela será disponibilizada publicamente e armazenada em seu próprio repositório.

As principais vantagens da nova interface de comando do Windows são muitas guias e belos textos. O suporte para múltiplas abas foi considerado o pedido mais solicitado para desenvolvimento de terminal. Belo texto é obtido graças ao mecanismo de renderização baseado em DirectWrite/DirectX, equipado com aceleração de GPU.

O mecanismo exibe ícones de texto, glifos e caracteres especiais encontrados em fontes, incluindo ideogramas chineses, japoneses e coreanos (CJK), emojis, símbolos powerline, ícones e ligaduras de programação. Além disso, esse mecanismo renderiza texto muito mais rápido 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.

Cronologia: como isso vai acontecer

A Microsoft fornecerá o Windows Terminal por meio da Microsoft Store no Windows 10 e o atualizará regularmente. Dessa forma, os usuários estarão sempre atualizados com as versões mais recentes e os aprimoramentos mais recentes – praticamente sem nenhum esforço extra.

A Microsoft planeja lançar um novo terminal no próximo inverno. Assim que a Microsoft lançar o Windows Terminal 1.0, os desenvolvedores continuarão a trabalhar em muitos dos recursos já acumulados.

Código-fonte do terminal do Windows e do console do Windows já postado no GitHub.

O que pode nos 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.

O resultado provavelmente dependerá de a Microsoft conseguir encontrar uma demanda significativa para tal produto e das oportunidades comerciais que tais desenvolvimentos poderiam potencialmente abrir, diz Charles King.

Ele acredita que o foco da empresa no futuro próximo será tornar o Windows e o Linux cada vez mais compatíveis e complementares entre si.

Joshua Schwartz acredita que neste caso será preciso pesar qual será o investimento nesta obra e qual será o retorno dela. Se a Microsoft fosse uma empresa muito jovem hoje, provavelmente faria tudo baseado em Linux. No entanto, portar todos os desenvolvimentos já disponíveis da Microsoft para a arquitetura nativa do Linux hoje parece ser um projeto caro e complexo que provavelmente não terá bons resultados. Os amantes do Linux terão seu próprio Linux e a arquitetura central permanecerá intacta.

Quando a Apple reinventou o Mac OS em 2000, o sistema operacional era baseado no BSD Unix, que é mais parecido com o Linux do que com o DOS. Hoje, uma nova versão do Microsoft Windows está sendo criada baseada em Linux.

Talvez uma nova porta esteja se abrindo para nós?

O kernel Linux da Microsoft poderia abrir caminho para uma maior interoperabilidade entre os serviços do Windows e o sistema operacional Linux. No fundo, estes desenvolvimentos da Microsoft indicam que a própria Microsoft já entende: hoje quase não sobram clientes que prefiram existir num mundo onde tudo é Windows.

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

A questão estratégica mais ampla é: que novas oportunidades estratégicas este movimento abre para a própria plataforma Microsoft?

Azure, o ecossistema de nuvem da Microsoft, já oferece um suporte tremendo para Linux. Anteriormente, o Windows suportava bem o Linux usando máquinas virtuais.

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

Fonte: habr.com

Adicionar um comentário