Las aplicaciones de Linux pronto estarán disponibles en Chrome OS, comenzando con Google Pixelbook, gracias al Proyecto Crostini. ¿Qué es Crostini y por qué es tan importante? Nos sumergimos en el mayor cambio en Chrome OS desde la integración de la aplicación 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 Proyecto Crostini.
En pocas palabras, es una forma de ejecutar aplicaciones normales de Linux en Chrome OS sin comprometer la seguridad ni habilitar el modo de desarrollador. El (aún no disponible) estados de configuración oficial que es para "Ejecutar herramientas, editores e IDE de Linux en su Chromebook".
Crostini es la culminación de varios años de desarrollo que permitieron que la funcionalidad se ejecutara de manera suficientemente segura para cumplir con los altos estándares de seguridad de Chrome OS. Para entender por qué apenas está apareciendo, es mejor mirar lo que vino antes.
Poniendo a Crostini en contexto: la edad oscura de Chrome OS
Antes de que las aplicaciones de Android aparecieran en escena, no había muchas funciones sin conexión y mucho menos aplicaciones de productividad útiles en Chrome OS. ¿Por qué una persona en su sano juicio compraría un Chromebook? "Es sólo un navegador web", fue el comentario final de cada revisión de Chromebook. Chrome Web Store era todo lo que obtendrías, pero la selección de aplicaciones era bastante pobre y rara vez se actualizaba. Los aventureros podrían intentar ejecutar aplicaciones de Android utilizando una herramienta llamada Soldador de arco, pero eso fue un éxito o un fracaso y el rendimiento fue pobre.
Para sortear las limitaciones fuera de línea, los usuarios frustrados borraron Chrome OS e instalaron Linux o utilizaron la herramienta de código abierto. Cuscurro para configurar un entorno de escritorio simultáneo [por ejemplo, Ubuntu Unity] que funcione sobre el kernel de Chrome OS.
Ejecutar una distribución GNU/Linux o Crouton de reemplazo requería bastante 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 dejó su entorno Crouton sin cifrar, cualquier usuario invitado podría acceder a él.
Integración de aplicaciones de Android, sentando un precedente
Las aplicaciones de Android llegaron a Chrome OS en 2016 y supusieron un gran salto en la funcionalidad fuera de línea, pero habilitar esta funcionalidad no fue solo plug-and-play. La única forma en que podría funcionar en un sistema operativo que valora la seguridad era si estuviera efectivamente protegido.
La novedosa solución que eligieron los desarrolladores de Chrome OS fue contenedorización, una forma de agrupar aplicaciones en paquetes ejecutables independientes. Usando un contenedor y más de unos pocos ajustes, lograron obtener el entorno Android completo y todo sus dependencias para ejecutarse en un contenedor, separado del resto de Chrome OS pero ejecutándose en el mismo núcleo.
Pero las aplicaciones de Android generalmente no se desarrollan teniendo en mente un factor de forma de escritorio/portátil. Agregue una mala experiencia táctil en Chrome OS a la mezcla y tendrá una sesión de productividad frustrante si las aplicaciones funcionaran.
Si bien las aplicaciones de Android ayudaron a cerrar la brecha de productividad hasta ahora, todavía existía el 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 la superficie de ataque de Chrome OS porque las aplicaciones maliciosas podrían tener acceso a todo lo que hay en el sistema operativo anfitrión. Entonces, esta vez los desarrolladores diseñaron la funcionalidad de la aplicación Linux lo más aislada 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 de KVM (máquina virtual basada en kernel) de Chrome OS. Una vez que se inicia la VM, coloca la segunda pared (un contenedor) que luego tiene la aplicación que realmente desea ejecutar. Entonces, cuando desee ejecutar su aplicación de escritorio Klondike completa, se ejecuta en un contenedor dentro de una máquina virtual.
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, el software La arquitectura para Chrome OS ahora probablemente se vea así [nota: todo funciona por mi cuenta, definitivamente no es un documento oficial del equipo de Chrome OS, probablemente sea completamente falso, no lo haga lastimame]:
En resumen, el componente VM tiene un espacio de usuario y dispositivos virtuales separados (vCPU, IP, MAC, etc.), y el contenedor es una aplicación empaquetada que utiliza esos recursos. En este punto, debo agregar una advertencia de que el componente VM en realidad no emula ningún hardware.
Sólo gente rica... por ahora
Algunos, como la comunidad de Reddit /r/Crostini, ya han empezado a experimentar con Crostini en su Libros de píxeles de Google. Desafortunadamente, el Pixelbook es el único dispositivo que tiene la funcionalidad Crostini hasta el momento, pero las señales apuntan a que otros dispositivos, incluso aquellos con sistema en chips ARM, recibirán soporte en el futuro. Pero quizás todavía no para máquinas de 32 bits. También hay indicios de que algunas partes de la funcionalidad de VM son necesarias para ejecutar Crostini. no estará disponible para dispositivos con versiones anteriores del kernel.
Si has llegado hasta aquí probablemente te estés preguntando: ¿Qué puedo ejecutar? El éxito ha sido limitado. Los desarrolladores de Chrome han insinuado que tienen Visual Studio ejecutándose. Los usuarios de Reddit hicieron funcionar WINE y Android Studio, y ChromeUnboxed hizo una útil demostración en vídeo. Pero probablemente no conozcamos 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 puedes continuar donde lo dejaste y que los desarrolladores están trabajando para que estén disponibles en tu lista de aplicaciones recientes.
¿Qué sigue? Algunos puntos a considerar
Si estás en el canal de desarrollador en una Chromebook que no sea una Pixelbook, es posible que la aplicación Terminal haya llegado a tu Chromebook. Es posible que vea el error "Error al iniciar el conserje". Esto se debe a que la funcionalidad VM no se ha habilitado en otros dispositivos además del Pixelbook… todavía.
Todavía no sabemos cómo se asignan los recursos y qué tipo de gastos generales producen estas aplicaciones anidadas. La idea de jugar en juegos Steam compatibles con Linux es tentadora, pero si la aceleración de GPU no está disponible entonces, por ahora, es imposible.
No sabemos qué limitaciones producirá el espacio de aire entre el host y el contenedor (si corresponde). La comunicación entre el contenedor y Chrome OS está controlada, entonces, ¿eso introducirá latencia o incluso desactivará algunos periféricos?
Tenemos muchas preguntas sin respuesta y es sólo cuestión de tiempo hasta que todo se revele. Muchos están convencidos 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 realizamos un seguimiento de Crostini.
Fuentes:
Maksim Lin – Contenedores de Chrome OS
Git de cromo Paquete de contenedores ARC, herramientas_vm, terminación del proyecto, crovm