Google propone que Fuchsia OS ejecute programas de Android y Linux “de forma nativa

Esencialmente, los programas de Linux se ejecutarían “normalmente”, sin saber que no se está ejecutando en un sistema operativo basado en Linux.

Desde hace años, Google está desarrollando Fuchsia, un sistema operativo claramente no basado en Linux. La última propuesta de Fuchsia OS muestra cómo este sistema operativo “no Linux” podría ejecutar programas “no modificados” tanto para Android como para Linux.

Uno de los mayores problemas que plantea la creación de un nuevo sistema operativo, sobre todo si se construye desde cero como Fuchsia, es que la gente querrá, con razón, poder ejecutar sus aplicaciones favoritas en ese sistema operativo. En el caso de Fuchsia, que teóricamente podría ser el sucesor de Chrome OS y Android, la gente probablemente esperaría poder ejecutar tanto aplicaciones de Android como de Linux, junto con las aplicaciones nativas de Fuchsia.

Hasta ahora, la expectativa era que Fuchsia podría lograr esto de la misma manera que Chrome OS es capaz de ejecutar aplicaciones de Linux, mediante la ejecución de una instancia completa de Linux en una máquina virtual. Chrome OS está incluso preparado para utilizar esta misma estrategia para su capacidad de ejecutar aplicaciones Android, gracias a un proyecto llamado arcvm.

Sin embargo, el enfoque de la máquina virtual tiene algunas desventajas. Por un lado, la gestión de archivos entre el “anfitrión” (Fuchsia, por ejemplo) y el “invitado” (Android) puede ser complicada o engorrosa. Además, Fuchsia pone énfasis en la seguridad, intentando mantener los programas aislados unos de otros siempre que sea posible. Para mantener ese nivel de aislamiento con las aplicaciones de Linux, Fuchsia tendría que ejecutar más de una máquina virtual, lo que podría mermar el rendimiento.

Esta semana se ha propuesto una solución alternativa para que Fuchsia ejecute programas destinados a Linux y Android. En lugar de ejecutar el propio Linux, Fuchsia obtendría un sistema llamado “Starnix”, que actuaría como traductor entre las instrucciones del núcleo de Linux y las del núcleo Zircon de Fuchsia.

Esencialmente, los programas de Linux se ejecutarían “normalmente”, sin saber que no se está ejecutando en un sistema operativo basado en Linux. Al mismo tiempo, Starnix se encargaría de asegurarse de que la aplicación es capaz de funcionar en Fuchsia tal y como se supone que lo hace en Linux. Si estás familiarizado con el funcionamiento de Linux, la propuesta completa de Starnix es una lectura interesante, en particular sus planes de apoyar a Linux “tal y como se habla“, lo que significa preservar todas las peculiaridades o comportamientos oscuros.

Lo que es más interesante para aquellos con un interés casual en Fuchsia es precisamente cómo los desarrolladores pretenden utilizar Starnix. En múltiples ocasiones, la propuesta habla de utilizar Starnix para ejecutar código de Android directamente en Fuchsia.

A medida que ampliamos el universo de software que deseamos ejecutar en Fuchsia, nos encontramos con software que deseamos ejecutar en Fuchsia y que no tenemos la capacidad de recompilar. Por ejemplo, las aplicaciones de Android contienen módulos de código nativo que han sido compilados para Linux. Para ejecutar este software en Fuchsia, necesitamos ser capaces de ejecutar los binarios sin modificarlos.

Por ejemplo, ejecutaremos algunos binarios de prueba de bajo nivel del árbol de fuentes de Android, así como binarios del Proyecto de Prueba de Linux.

A partir de esto, podemos ver que Google puede tener la intención de que Fuchsia sea capaz de soportar profundamente las aplicaciones de Android, sin necesidad de hacer excepciones, como para las aplicaciones que utilizan el NDK de Android para escribir en C o C++. Por supuesto, a largo plazo, Starnix sólo debería utilizarse como una medida provisional para permitir que el sistema operativo Fuchsia de Google sea más ampliamente utilizable mientras se espera que los desarrolladores porten sus aplicaciones al nuevo sistema operativo. En casi todas las situaciones, una aplicación nativa de Fuchsia debería funcionar mejor que una aplicación de Linux o Android ejecutada a través de Starnix.

Dicho esto, Starnix de Fuchsia está sólo en la fase de propuesta, con una cantidad significativa de trabajo que debe hacerse para tener algo parecido a la compatibilidad adecuada de Android/Linux con Fuchsia/Zircon. Para tratar de evitar los obstáculos de esta empresa, Google ha estudiado los éxitos y fracasos de proyectos similares, como el subsistema original de Windows para Linux (WSL1). Sin embargo, es muy posible que esta propuesta y este esfuerzo fracasen y que Fuchsia vuelva a utilizar máquinas virtuales para sus necesidades de Linux y Android.

Si la adición de compatibilidad con Linux y Android a Fuchsia suena intrigante, Google ha abierto recientemente el proyecto a las contribuciones de la comunidad de código abierto.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like