Petr Hosek, jefe del equipo de Google responsable de sistemas de compilación, compiladores y herramientas de desarrollo dio a conocer recientemente el primer dispositivo que se incluye con el sistema operativo Fuchsia. El firmware basado en fucsia comenzará a enviarse a los marcos de fotos inteligentes de Nest Hub como parte de una actualización experimental para los miembros del programa Google Preview.
Se menciona que si durante la implementación de prueba no hay problemas imprevistos, el firmware basado en Fuchsia se aplicará a los dispositivos de otros usuarios de Nest Hub, quienes no notarán las diferencias, ya que la interfaz construida sobre la base del framework Flutter seguirá siendo la misma. Solo cambiarán los componentes de bajo nivel del sistema operativo.
Anteriormente, los dispositivos Google Nest Hub lanzados desde 2018, que combinaban las funciones de un marco de fotos, un sistema multimedia y una interfaz para el control inteligente del hogar, usaban firmware basado en Cast shell y el kernel de Linux.
Recordemos que en el marco del proyecto Fuchsia, Google viene desarrollando un sistema operativo universal desde 2016 que puede funcionar en cualquier tipo de dispositivo, desde estaciones de trabajo y smartphones hasta tecnología embebida y de consumo. El desarrollo se lleva a cabo teniendo en cuenta la experiencia de crear la plataforma Android y tiene en cuenta las deficiencias en el campo del escalado y la seguridad.
El sistema se basa en el microkernel Zircon, basado en los desarrollos del proyecto LK, extendido para su uso en varias clases de dispositivos, incluidos teléfonos inteligentes y computadoras personales. Zircon extiende LK con soporte para procesos y bibliotecas compartidas, nivel de usuario, manejo de objetos y modelo de seguridad basado en capacidades. Los controladores se implementan como bibliotecas dinámicas de espacio de usuario cargadas por el proceso devhost y administradas por el administrador de dispositivos (devmg, Administrador de dispositivos).
For Fuchsia desarrolló su propia interfaz gráfica escrita en lenguaje Dart, utilizando el framework Flutter. El proyecto también desarrolla el marco de interfaz de usuario de Peridot, el administrador de paquetes Fargo, la biblioteca estándar libc, el sistema de renderizado Escher, el controlador Magma Vulkan, el administrador compuesto escénico, MinFS, MemFS, ThinFS (FAT en lenguaje Go) y sistemas de archivos Blobfs, así como las particiones FVM. También permite crear aplicaciones móviles para iOS y Android. La renderización se realiza mediante el componente Escher, que funciona a través de la API de gráficos Vulkan.
El entorno de usuario se divide en dos componentes: Armadillo y Armadillo User Shell. Armadillo es una aplicación portátil que puede ejecutarse en cualquier plataforma compatible con Flutter, incluidas Android e iOS (se ha preparado un ensamblaje de demostración en forma de archivo APK para Android, lo que permite probar la interfaz sin instalar Fuchsia). Armadillo User Shell es un enlace sobre la aplicación Armadillo que proporciona herramientas para interactuar con los servicios de Fuchsia a través de interfaces FIDL y organizar el entorno del usuario sobre los componentes del sistema Fuchsia OS.
Para el desarrollo de aplicaciones, soporte para C/C ++, se proporciona Dart, Rust también está permitido en los componentes del sistema, en la pila de red: Ve y en el sistema de construcción del lenguaje Python.
El proceso de arranque utiliza el administrador del sistema, que incluye appmgr para crear el entorno de software inicial, sysmgr para crear el entorno de arranque y basemgr para configurar el entorno de usuario y organizar el inicio de sesión.
Para garantizar la seguridad, se propone un sistema avanzado de aislamiento sandbox, en el que los nuevos procesos no tienen acceso a los objetos del kernel, no pueden asignar memoria y no pueden ejecutar código, y se utiliza un sistema de espacio de nombres para acceder a los recursos, que determina los permisos disponibles. La plataforma proporciona un marco para la creación de componentes, que son programas que se ejecutan en su caja de arena y que pueden interactuar con otros componentes a través de IPC.
Fuente: desdelinux