Compatibilidade Windows

Kernel Linux no Windows 10

Kernel Linux no Windows 10
Como funciona o novo subsistema Windows para Linux (v2)?

A Microsoft anunciou recentemente que em breve enviará um kernel Linux integrado ao Windows 10. Isso permitirá que os desenvolvedores aproveitem a plataforma Windows 10 ao desenvolver aplicativos para Linux. Na verdade, esta é a próxima etapa na evolução do Windows Subsystem for Linux (WSL). Vamos revisar o WSL versão 1 antes de entrar na intrincada intergação do kernel do Linux e o que isso significa.

Se você deseja começar com WSL (v1), aqui está um guia para isso.

1.  WSL versão 1

O subsistema Windows para Linux deve realmente ser chamado de subsistema Linux para Windows. Ele oferece um driver (um subsistema) para o sistema operacional Windows, que traduz as chamadas do sistema Linux em chamadas do sistema Windows 10 nativas que o kernel do NT entende.

Isso cria uma ilusão um tanto crível para os binários do Linux de que eles estão, de fato, rodando em cima de um kernel Linux! Isso funciona bem o suficiente para que você não apenas execute binários simples de 64 bits compilados para Linux, mas também execute um Userland inteiro (a.k.uma distribuição Linux como Debian ou Ubuntu) no topo do WSL v1. Portanto, quando você instala o Ubuntu a partir da loja da Microsoft, ele apenas busca os binários da área de usuário do Ubuntu que a Canonical envia para o ambiente WSL v1 da Microsoft.

No entanto, WSL v1 ainda está longe de ser perfeito. Certas semânticas que um sistema Linux esperaria são totalmente inaceitáveis ​​no Windows. Por exemplo, você não pode alterar o nome de um arquivo aberto no Windows, mas pode fazer isso no Linux.

Outros exemplos óbvios incluem o fraco desempenho do sistema de arquivos do WSL v1 e sua incapacidade de executar o Docker.

2.  WSL v2 o kernel do Linux

Esta nova versão do WSL resolve todos esses problemas, incluindo o kernel Linux em execução no hipervisor Hyper-V. Ao longo de seu anúncio e demonstrações, Craig Loewen e seu colega da Microsoft enfatizaram que, no futuro, a Microsoft vai investir enormemente em tecnologia de virtualização.

Usar um kernel Linux resolve todos os problemas semânticos que não podem ser resolvidos usando apenas uma camada de tradução de chamada de sistema. Este kernel do Linux vai ser muito leve e será mantido pela Microsoft com todas as mudanças no kernel do Linux feitas de código aberto. Em sua demonstração, eles mostraram como você pode simplesmente migrar os aplicativos WSL v1 existentes para executar sem modificações em um ambiente WSL v2. O desempenho do sistema de arquivos melhorou 3-4 vezes e todo o sistema parece muito mais responsivo.

3.  Como funciona?

Então, basicamente, temos uma VM Linux com muitos aplicativos de área de usuário, e.g, OpenSUSE ou Debian ou Ubuntu userland. Você obtém mais de uma distro em sua máquina Windows, com uma única VM Linux, o que é ótimo. Mas também implica que toda vez que você abre seu terminal WSL Ubuntu, você está inicializando uma VM completa! Isso vai demorar um pouco, certo?

Na verdade não. O kernel do Linux é realmente pequeno e leve o suficiente para que a Microsoft conseguisse tempos de inicialização insanos com ele (~ 1 segundo). Eles conseguiram isso removendo todo o código do bootloader e, uma vez que é uma VM, eles carregam diretamente o kernel do Linux em seu espaço de endereço na memória e configuram alguns estados da VM que o kernel espera. Este é o mesmo mecanismo que alimenta outro novo recurso do Windows 10 que é o Windows Sandbox.

Possui uma pegada de memória muito pequena, carrega em um segundo e o formato nativo do sistema de arquivos ext4 permite oferecer uma experiência de usuário muito suave. A VM só é executada quando você precisa dela.

Além disso, não é completamente isolado como uma VM tradicional. Você pode interagir facilmente com o resto do sistema Windows, incluindo arquivos em suas unidades do Windows usando WSL v2. Não é uma VM isolada, mas uma parte integrada do Windows 10. Como isso consegue?

4.  Viva o Plano 9

Com WSL v1, acessar arquivos e diretórios em seus convidados do Windows era trivial. Seu espaço de usuário Linux é apenas um aplicativo no Windows, para que possa ler e gravar arquivos originalmente pertencentes ao sistema operacional nativo com bastante facilidade.

Com WSL v2, você tem uma VM em execução com seu disco rígido virtual (formatado com ext4, é claro) e se quisermos uma experiência semelhante à do WSL v1, precisamos de alguns mecanismos extras. Entrar no Plano 9.

Plan 9, também escrito como, 9P é um sistema operacional originalmente desenvolvido na Bell Labs. Embora seja improvável que você o encontre em produção, ele ainda vive à medida que vários outros sistemas operacionais adotam ideias interessantes que estão incubadas nele, incluindo o protocolo 9P para um servidor de arquivos.

5.  Sistemas de arquivos

WSL v2 terá um servidor de protocolo 9P em execução em seu host do Windows 10 e um cliente 9P em execução em seus aplicativos WSL. Isso permite que você acesse arquivos do Windows 10 nativamente dentro de seu ambiente WSL. A unidade C: será montada em / mnt / c, assim como WSL v1, e todos os arquivos dentro do host Windows 10 podem ser acessados ​​pelo ambiente WSL.

O inverso também será verdadeiro. Haverá um servidor de protocolo 9P em execução em seu ambiente Linux com seu cliente correspondente no host Windows 10. Isso permitirá que os usuários acessem seu sistema de arquivos Linux (ext4) a partir do ambiente Windows 10. Permitindo que você edite seu código-fonte ou arquivos de configuração usando seu IDE favorito instalado no Windows, listando todos os diretórios usando o explorador de arquivos do Windows 10 e muito mais. Basicamente, você executará suas distribuições Linux favoritas com a IU do Windows 10.

6.  Docker

Em seu anúncio, a Microsoft também deu a entender que este novo ambiente também será usado pelo Docker para enviar seus futuros aplicativos Docker para Windows. Já que há um kernel Linux, rodando Docker em cima dele, vai ser bem fácil. Na demonstração, eles executaram o Docker no topo do Ubuntu rodando WSL v2 e funcionou como se estivesse rodando em uma instalação nativa do Ubuntu.

Para dar um exemplo muito superficial, se você trabalhou com Dockerfiles em um sistema Windows, deve ter notado os problemas de segurança que são causados ​​pela falta de permissões de arquivo do tipo Unix. Isso não será mais um problema. O Docker no Windows já usa uma VM personalizada para fornecer contêineres Linux, presumivelmente, agora usará WSL v2 para usar o kernel do Linux que a Microsoft fornece.

Conclusão

No geral, estou muito impressionado com o que a Microsoft está fazendo para fornecer um refúgio para desenvolvedores Linux que também desejam usar o Windows. Esperançosamente, a longo prazo, isso irá encorajar muita polinização cruzada entre os dois ecossistemas diferentes.

Se você estiver executando o Windows 10 Home, Pro ou edição empresarial, pode ter uma amostra do WSL v2 optando pelas compilações de visualização do Windows 10. Aqui está um guia sobre como fazer isso.

Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...