HarmonyOS ya es oficial. Huawei lo ha presentado en su conferencia para desarrolladores y ha dado algunos de los detalles más importantes de una nueva plataforma que se sitúa como alternativa a Android pero que no está dirigida a móviles, sino a coches, wearables o dispositivos de la Internet de las Cosas, por ejemplo.
Entre las claves de su diseño, en Huawei hablaron de un concepto importante: HarmonyOS está basado en un microkernel que permite que se pueda adaptar "a todos los escenarios". El concepto, por cierto, es el mismo en el que Google está trabajando con Fuchsia. ¿Qué es y por qué es tan importante el microkernel en HarmonyOS?
Del kernel al microkernel
Si hay un pilar indiscutible de cualquier sistema operativo, ese es el núcleo o kernel del sistema. El kernel gestiona la comunicación entre el hardware y el software, permitiendo que el propio sistema operativo y las aplicaciones puedan hacer uso del procesador, memoria, sistema de almacenamiento, gráficos, sonido y demás componentes disponibles en el dispositivo que está gobernado por ese sistema operativo.
No solo eso: el kernel o núcleo del sistema también gestiona eventos críticos como las señales que envían los dispositivos o la imprescindible planificación de procesos que permiten repartir por ejemplo recursos como el procesador.
El núcleo del sistema es uno de los primeros componentes del sistema operativo que se almacenan o cargan en la memoria principal durante el proceso de arranque, y permanece activo hasta que el ordenador deja de estar funcionando. En Linux, por ejemplo, el kernel se puede configurar de forma notable para luego compilarlo y que ese componente se ajuste a las necesidades de cada usuario y dispositivo.
En comparación con el kernel, un microkernel es mucho más compacto, y se centra en ofrecer únicamente las funciones básicas para todo tipo de dispositivos: se olvida un poco de lo específico -y de integrar numerosas opciones que pueden estar en un dispositivo, pero no estar en otros muchos- y se centra en lo general y universal de todos esos dispositivos.
El microkernel es por tanto es la piedra angular de desarrollos mucho más versátiles en cuanto a escenarios de uso: se puede ajustar a todos ellos, pero lo hace gracias a una estructura modular, basada en componentes que se van añadiendo a ese microkernel como pequeñas piezas de un puzzle. Lo hacen para ajustarse de forma óptima a cada dispositiva, pero siempre con el microkernel como componente fundamental.
La ventaja fundamental del microkernel es esa portabilidad y esa capacidad de adaptarse a todo tipo de dispositivos, pero hay una desventaja convencional con este paradigma: el rendimiento puede salir perjudicado.
Uno de los microkernels más famosos es Mach, que es la base de sistemas operativos como Tru64 (el sistema operativo UNIX de HP para plataformas Alpha), GNU Hurd y sobre todo (aunque con matices) los distintos sistemas operativos de Apple (macOS, iOS, iPadOS, tvOS y watchOS) que se basan todos en XNU, un kernel híbrido derivado del microkernel Mach que contiene características tanto de kernels monolíticos (como el de Linux) como de microkernels.
De hecho en Huawei destacaban cómo usar un microkernel hace todo más eficiente: de los 20 millones de líneas de código del kernel de Linux, "solo el 8% es usado frecuentemente en Android". Si no necesitas tanto con frecuencia, ¿para qué utilizar un kernel convencional?
¿Por qué Harmony OS está basado en un microkernel?
La respuesta a esta pregunta es parte de la explicación anterior y es simple: versatilidad. Richard Yu, CEO de Huawei, destacaba en la presentación de este sistema operativo cómo HarmonyOS "es una plataforma distribuida para todo tipo de escenarios".
Así, la idea con HarmonyOS no es la de sustituir (solo) a Android si lo necesitan. Parece que en smartphones la idea es seguir apostando por Android si Google y la guerra comercial entre EE.UU. y China lo permiten, pero aquí Yu era claro y decía que si era necesario, pasar a HarmonyOS en sus smartphones sería rápido y sencillo.
El objetivo, como decimos, es poder aplicar HarmonyOS a todo tipo de dispositivos, y eso incluye a televisores inteligentes -puede que sean los primeros en los que veamos esta plataforma en acción-, altavoces inteligentes, wearables, soluciones de la Internet de las Cosas o coches conectados, entre otros.
La presencia de un microkernel es vital para este objetivo, ya que permite tener un componente base universal (algo así como la masa de las pizzas) y que luego se adapta a cada dispositivo con una serie de módulos opcionales (esos ingredientes que cada uno añade o elige al pedir esa pizza). Con un kernel monolítico tradicional eso sería inviable, ya que hay que adaptar ese kernel a los recursos del dispositivo.
Google ya mencionó en su plataforma análoga, Fuchsia, el microkernel sería Zircon -antes conocido como Magenta-, un componente que además integra algunos servicios del espacio de usuario, controladores y la implementación de las librerías de C (libC) necesarios para el arranque, para comunicarse con el hardware y para cargar procesos en el espacio de usuario y ejecutarlos.
El microkernel en sí proporciona llamadas de sistema para gestionar los procesos, los hilos de ejecución, la memoria virtual, la comunicación entre procesos (IPC), la espera entre cambios de estado de un objeto y los mecanismos de bloqueo (futexes) para la correcta ejecución de los procesos. No hay mucho más, como explican los responsables de Google en el repositorio de Google Git donde el código de Zircon sigue estando disponible.
Aunque no hay demasiados detalles sobre el microkernel de HarmonyOS -de hecho no sabemos su nombre, si es que lo tiene- es muy probable que las analogías sean notables entre uno y otro. Eso sí: en Huawei destacaban cómo han tratado de centrarse en ofrecer un microkernel para un sistema operativo eficiente y muy seguro.
Además hablaron de cómo han trabajado especialmente en su rendimiento, que entre otras cosas mejora según Huawei la comunicación entre procesos de forma notable. El IPC de HarmonyOS era 3 veces el de QNX, un sistema operativo de tiempo real muy conocido en su segmento de mercado, y 5 veces el de Fuchsia, indicaban en una de las diapositivas de la presentación.
Tanto el enfoque como los datos son desde luego prometedores, pero todo ello tendrá que ser confirmado con las pruebas reales cuando tengamos acceso a los primeros dispositivos basados en este sistema operativo. De momento, eso sí, el microkernel es la clave del futuro de los sistemas operativos de Huawei y Google.
Ver 2 comentarios