Aplicativos Linux no Chrome OS

Os aplicativos Linux estarão disponíveis em breve no Chrome OS, começando com o Google Pixelbook, graças ao Projeto Crostini. O que é Crostini e por que é tão importante? Mergulhamos na maior mudança no Chrome OS desde a integração do aplicativo Android.

Aqui está tudo o que você precisa saber sobre o desenvolvimento secreto da funcionalidade de aplicativos Linux no Chrome OS, que durou um ano, também conhecido como Projeto Crostini.

Resumindo, é uma maneira de executar aplicativos Linux regulares no Chrome OS sem comprometer a segurança ou ativar o modo de desenvolvedor. O (ainda não disponível) estados de configuração oficial que é para "Executar ferramentas, editores e IDEs do Linux em seu Chromebook".

Crostini é o culminar de vários anos de desenvolvimento que permitiram que a funcionalidade fosse executada com segurança suficiente para atender aos altos padrões de segurança do Chrome OS. Para entender por que está apenas aparecendo, é melhor observar o que veio antes.

Colocando Crostini em contexto – a era das trevas do Chrome OS

Antes de os aplicativos Android entrarem em cena, não havia muitas funcionalidades off-line, muito menos aplicativos de produtividade úteis no Chrome OS. Por que qualquer pessoa sã compraria um Chromebook? “É apenas um navegador da web”, foi o comentário final de cada análise do Chromebook. A Chrome Web Store era o máximo que você conseguiria, mas a seleção de aplicativos era muito ruim e raramente atualizada. Os aventureiros poderiam tentar executar aplicativos Android usando uma ferramenta chamada Soldador ARC, mas isso foi um acerto ou um fracasso e o desempenho foi ruim.

Para contornar as limitações off-line, usuários frustrados limparam o Chrome OS e instalaram o Linux ou usaram a ferramenta de código aberto Crouton para configurar um ambiente de desktop simultâneo [por exemplo, Ubuntu Unity] funcionando no kernel do Chrome OS.

Instalação do Crouton, um kit de ferramentas de código aberto, anteriormente a maneira de fato de acessar aplicativos Linux no Chrome OS, que será descontinuado em breve

A execução de uma distribuição substituta do GNU/Linux ou do Crouton exigia um pouco de conhecimento e muitas vezes estava repleta de bugs – e nenhuma das opções era particularmente fácil de usar ou segura. Pressione a tecla errada e você apagará ou bloqueará seu dispositivo e, se deixar seu ambiente Crouton sem criptografia, qualquer usuário convidado poderá acessá-lo.

Integração de aplicativos Android, estabelecendo um precedente

Os aplicativos Android chegaram ao Chrome OS em 2016 e representaram um grande salto na funcionalidade off-line, mas ativar essa funcionalidade não foi apenas plug-and-play. A única maneira de funcionar em um sistema operacional que valoriza a segurança seria se ele estivesse efetivamente em uma área restrita.

A nova solução escolhida pelos desenvolvedores do Chrome OS foi conteinerização, uma forma de agrupar aplicativos em pacotes executáveis ​​independentes. Usando um contêiner e mais do que alguns ajustes, eles conseguiram obter o ambiente Android completo e tudo mais. suas dependências para serem executadas em um contêiner, separadas do restante do Chrome OS, mas em execução no mesmo núcleo.

Mas os aplicativos Android geralmente não são desenvolvidos com um formato de desktop/laptop em mente. Adicione uma experiência de toque ruim no Chrome OS à mistura e você terá uma sessão de produtividade frustrante se os aplicativos funcionarem.

Dores de cabeça com compatibilidade – aplicativos Android no Chrome OS

Embora os aplicativos Android tenham ajudado a preencher a lacuna de produtividade até agora, ainda havia aquele anseio pela enorme biblioteca de aplicativos de desktop completos. Tal como acontece com o problema inicial do Android, simplesmente abrir a capacidade de executar aplicativos Linux seria aumentar a superfície de ataque do Chrome OS porque aplicativos maliciosos podem ter acesso a tudo no sistema operacional host. Portanto, desta vez, os desenvolvedores projetaram a funcionalidade do aplicativo Linux da forma mais isolada possível, além do que já aprenderam com o Android.

Defesa em profundidade

Como o nome indica, Crostini é como o Crouton, mas em vez de ter um espaço de usuário inseguro ao lado do Chrome OS, ele tem duas paredes entre eles. A primeira parede é Termina VM, uma implementação KVM (máquina virtual baseada em kernel) do Chrome OS. Depois que a VM é iniciada, ela cria uma segunda parede – um contêiner – que contém o aplicativo que você realmente deseja executar. Portanto, quando você deseja executar seu aplicativo de desktop Klondike completo, ele é executado em um contêiner dentro de uma VM.

Os desenvolvedores não tornaram a documentação pública particularmente digerível do ponto de vista não técnico, mas da minha leitura não oficial para leigos, o software a arquitetura do Chrome OS agora provavelmente se parece com isto [nota: tudo funciona por conta própria, definitivamente não é um documento oficial da equipe do Chrome OS, provavelmente completamente falso, por favor, não me machuque]:

Como pensamos que é a arquitetura Crostini. Não é um documento oficial.

Resumindo, o componente VM possui um espaço de usuário e dispositivos virtuais separados (vCPU, IP, MAC, etc.), e o contêiner é um aplicativo empacotado que utiliza esses recursos. Neste ponto, devo acrescentar uma ressalva de que o componente VM na verdade não emula nenhum hardware.

Somente pessoas ricas... por enquanto

Alguns, como a comunidade do Reddit /r/Crostini, já começaram a mexer com Crostini em seu Google Pixelbooks. Infelizmente, o Pixelbook é o único dispositivo que possui funcionalidade Crostini até agora, mas os sinais apontam para outros dispositivos, mesmo aqueles com sistema em chips ARM, recebendo suporte no futuro. Mas talvez ainda não para máquinas de 32 bits. Também há indícios de que algumas partes da funcionalidade da VM são necessárias para executar o Crostini não estará disponível para dispositivos com versões de kernel mais antigas.

Se você chegou até aqui, provavelmente está se perguntando: o que posso executar? O sucesso foi limitado. Os desenvolvedores do Chrome deram a entender que têm o Visual Studio em execução. Os usuários do Reddit fizeram o WINE e o Android Studio funcionarem, e o ChromeUnboxed fez um trabalho útil demonstração em vídeo. Mas provavelmente não conheceremos todos os recursos – e limitações – antes que o Google realmente apresente algo. O que sabemos é que aplicativos são persistentes, o que significa que você pode continuar de onde parou e que os desenvolvedores estão trabalhando para disponibilizá-los em sua lista de aplicativos recentes.

Qual o proximo? Alguns pontos a considerar

Se você estiver no canal do desenvolvedor em um Chromebook que não seja um Pixelbook, o aplicativo Terminal pode ter chegado ao seu Chromebook. Você poderá ver um erro "falha ao iniciar o concierge". Isso ocorre porque a funcionalidade VM não foi habilitada em outros dispositivos além do Pixelbook… ainda.

Ainda não sabemos como os recursos são alocados e que tipo de sobrecarga esses aplicativos aninhados produzem. A ideia de jogar em jogos Steam compatíveis com Linux é atraente, mas se a aceleração da GPU não estiver disponível, por enquanto, é impossível.

Não sabemos quais limitações o entreferro hospedeiro/contêiner produzirá (se houver). A comunicação entre o contêiner e o Chrome OS é controlada. Isso introduzirá latência ou até desativará alguns periféricos?

Temos muitas perguntas sem resposta e é apenas uma questão de tempo até que tudo seja revelado. Muitos estão convencidos Google I/O 2018 em algumas semanas será a grande revelação – faz sentido, pois é uma conferência de desenvolvedores. Enquanto isso, fique ligado enquanto acompanhamos Crostini.


Fontes:

Maksim Lin – Contêineres do Chrome OS

Cromo Git Pacote de contêineres ARC, vm_tools, término do projeto, crosvm