Aplicaciones de Linux en Chrome OS: una descripción general de su característica más importante desde las aplicaciones de Android

Esto es todo lo que necesita saber sobre el desarrollo secreto de Google durante un año de la funcionalidad de la aplicación Linux en Chrome OS, también conocido como Project Crostini.

En pocas palabras, es una forma de ejecutar aplicaciones regulares de Linux en Chrome OS sin comprometer la seguridad o habilitar el modo de desarrollador. La configuración oficial (aún no disponible) establece que es "Ejecutar herramientas, editores e IDE de Linux en su Chromebook".

Crostini es la culminación de varios años de desarrollo que permitió que la funcionalidad se ejecute de forma segura para cumplir con los estándares de alta seguridad de Chrome OS. Para entender por qué solo está apareciendo, es mejor mirar lo que vino antes.

Poniendo a Crostini en contexto: las edades oscuras de Chrome OS

Antes de que las aplicaciones de Android llegaran a la escena, no había mucho en el camino de la funcionalidad fuera de línea y mucho menos aplicaciones de productividad útiles en Chrome OS. ¿Por qué una persona cuerda compraría un Chromebook? "Es solo un navegador web", fue el comentario final de cada revisión de Chromebook. Chrome Web Store era todo lo que obtendría, pero la selección de aplicaciones era bastante pobre y rara vez se actualizaba. Los aventureros podrían intentar ejecutar aplicaciones de Android usando una herramienta llamada ARC Welder, pero eso fue impredecible y el rendimiento fue pobre.

Para evitar las limitaciones fuera de línea, los usuarios frustrados borraron Chrome OS e instalaron Linux o utilizaron la herramienta de código abierto Crouton para configurar un entorno de escritorio simultáneo [por ejemplo, Ubuntu Unity] trabajando sobre el núcleo del sistema operativo Chrome.

Instalar Crouton, un kit de herramientas de código abierto, anteriormente la forma de facto de acceder a las aplicaciones de Linux en Chrome OS, y pronto será desaprobado

Ejecutar una distribución de GNU / Linux de reemplazo o Crouton requería un poco de conocimiento y a menudo estaba plagado de errores, y ninguna de las opciones era particularmente fácil de usar o segura. Presione la tecla incorrecta y borrará su dispositivo o lo bloqueará, y si deja su entorno Crouton sin cifrar, cualquier usuario invitado puede acceder a él.

Integración de aplicaciones de Android, sentando un precedente

Las aplicaciones de Android aterrizaron en Chrome OS en 2016 y supusieron un gran salto en la funcionalidad fuera de línea, pero habilitar esta funcionalidad no era solo plug-and-play. La única forma en que podría funcionar en un sistema operativo que valora la seguridad es si estuviera efectivamente protegido.

La solución novedosa que eligieron los desarrolladores de Chrome OS fue la contenedorización, una forma de agrupar aplicaciones en paquetes ejecutables independientes. Utilizando un contenedor y más de unos pocos ajustes, lograron que el entorno Android completo y todas sus dependencias se ejecutaran en un contenedor, separado del resto del sistema operativo Chrome que aún se ejecuta en el mismo kernel.

Pero las aplicaciones de Android generalmente no se desarrollan con un factor de forma de computadora de escritorio / portátil en mente. Agregue una experiencia táctil deficiente en Chrome OS a la mezcla y obtendrá una sesión de productividad frustrante si las aplicaciones funcionan en absoluto.

Dolores de cabeza con compatibilidad: aplicaciones de Android en Chrome OS

Si bien las aplicaciones de Android ayudaron a cerrar la brecha de productividad hasta el momento, todavía existía ese anhelo por la biblioteca masiva de aplicaciones de escritorio completas. Al igual que con el problema inicial de Android, simplemente abrir la capacidad de ejecutar aplicaciones de Linux aumentaría la superficie de ataque de Chrome OS porque las aplicaciones maliciosas podrían tener acceso a todo en el sistema operativo host. Entonces, esta vez los desarrolladores diseñaron la funcionalidad de la aplicación Linux lo más silo posible, además de lo que ya aprendieron con Android.

Defensa en profundidad

Como su nombre lo indica, Crostini es como Crouton, pero en lugar de tener un espacio de usuario inseguro junto a Chrome OS, tiene dos paredes entre ellos. El primer muro es Termina VM, una implementación KVM (máquina virtual basada en el kernel) de Chrome OS. Una vez que se inicia esa VM, coloca la segunda pared, un contenedor, que luego tiene la aplicación que realmente desea ejecutar. Entonces, cuando desea ejecutar su aplicación de escritorio Klondike completa, se ejecuta en un contenedor dentro de una VM.

Los desarrolladores no han hecho que la documentación pública sea particularmente digerible desde un punto de vista no técnico, pero según mi lectura no oficial, la arquitectura del software para Chrome OS ahora probablemente se ve así [nota: todos funcionan por mi cuenta, definitivamente no un documento oficial del equipo de Chrome OS, probablemente completamente falso, no me hagas daño]:

Lo que pensamos que es la arquitectura Crostini. No es un documento oficial.

En resumen, el componente VM tiene un espacio de usuario separado y dispositivos virtuales (vCPU, IP, MAC, etc.), y el contenedor es una aplicación empaquetada que utiliza esos recursos. En este punto, debería agregar una advertencia de que el componente VM no emula ningún hardware .

Solo gente rica ... por ahora

Algunos, como la comunidad de Reddit's / r / Crostini, ya han comenzado a jugar con Crostini en sus Google Pixelbooks. Desafortunadamente, el Pixelbook es el único dispositivo que tiene la funcionalidad Crostini hasta ahora, pero las señales apuntan a que otros dispositivos, incluso aquellos con sistema ARM en chips, recibirán soporte en el futuro. Pero quizás todavía no para las máquinas de 32 bits. También hay indicios de que algunas partes de la funcionalidad de VM necesarias para ejecutar Crostini no estarán disponibles para dispositivos con versiones de kernel anteriores.

Si has llegado hasta aquí, probablemente te estés preguntando: ¿qué puedo correr? El éxito ha sido limitado. Los desarrolladores de Chrome han insinuado que tienen Visual Studio ejecutándose. Los usuarios de Reddit lograron que WINE y Android Studio funcionen, y ChromeUnboxed realizó una útil demostración de video. Pero probablemente no sabremos todas las capacidades y limitaciones antes de que Google realmente muestre algo. Lo que sí sabemos es que las aplicaciones son persistentes, lo que significa que puede continuar donde lo dejó y que los desarrolladores están trabajando para que estén disponibles en su lista de aplicaciones recientes.

¿Qué sigue? Algunos puntos a considerar

Si está en el canal de desarrollador en un Chromebook que no sea Pixelbook, la aplicación Terminal puede haber llegado a su Chromebook. Es posible que vea un error de "error al iniciar el conserje". Esto se debe a que la funcionalidad de VM no se ha habilitado en dispositivos que no sean Pixelbook ... todavía.

Todavía no sabemos cómo se asignan los recursos y qué tipo de sobrecarga producen estas aplicaciones anidadas. La idea de jugar en juegos de Steam compatibles con Linux es atractiva, pero si la aceleración de GPU no está disponible, por ahora, es imposible.

No sabemos qué limitaciones producirá el espacio de aire del host / contenedor (si lo hay). La comunicación entre el contenedor y Chrome OS está controlada, entonces, ¿eso introducirá latencia o incluso deshabilitará algunos periféricos?

Tenemos muchas preguntas sin respuesta, y es solo cuestión de tiempo hasta que todo se revele. Muchos están convencidos de que Google I / O 2018 en unas pocas semanas será la gran revelación, tiene sentido ya que es una conferencia de desarrolladores. Mientras tanto, estad atentos mientras hacemos un seguimiento de Crostini.


Fuentes:

Maksim Lin - Contenedores Chrome OS

Chromium Git: paquete contenedor ARC, vm_tools, project-termina, crosvm