Zircon (núcleo)

De Wikipedia, la enciclopedia libre
(Redirigido desde «Magenta (Kernel)»)
Zircon
Información general
Tipo de programa micronúcleo
Desarrollador Google
Modelo de desarrollo Desarrollo iterativo, mediante código abierto y correcciones de errores de la comunidad.
Licencia Código abierto
Estado actual En Desarrollo
Información técnica
Programado en C++, ensamblador
Tipo de núcleo micronúcleo
Plataformas admitidas x86-64, ARM
Enlaces

Zircon (anteriormente Magenta)[1]​ es el núcleo del sistema operativo Google Fuchsia.[2]​ Es software libre y de código abierto, publicado bajo la licencia MIT, y ha estado en desarrollo desde 2016.[3]

Aspectos técnicos[editar]

Está escrito en C++ y una pequeña parte en ensamblador, se compone de un micronúcleo así como de un pequeño conjunto de servicios de usuario, controladores y bibliotecas, necesarios para que el sistema arranque, se comunique con el hardware, cargue los procesos de usuario y los ejecute.[4]​ Presenta características para gestionar hilos, memoria virtual, comunicación entre procesos, espera por cambios de estado de los objetos, entre otros.[5]​ El código de Zircon está basado en "Little Kernel" (LK) —un núcleo en tiempo real para dispositivos embebidos—, con el objetivo de consumir pocos recursos para ser usado en una amplia variedad de dispositivos, pero las capas superiores son nuevas, así como algunas decisiones de diseño, por ejemplo, a diferencia de Zircon, "Little Kernel" no incorpora el concepto de servicio.[6]

Aunque tiene una fuerte inspiración en núcleos de sistemas Unix, se diferencia en gran medida de estos. Por ejemplo, no tiene soporte para señales tipo Unix, en vez de esto, incorpora programación orientada a eventos, y el patrón de observador.[7]​ Además, la mayoría de llamadas al sistema no bloquean el hilo principal.[8]​ Los recursos son representados como objetos y no como archivos, a diferencia de los sistemas Unix tradicionales.[9]

Los controladores son implementados como bibliotecas compartidas en formato binario ELF, que son posteriormente cargadas en memoria por el Device Host (devhost). El Device Manager (devmgr) se hace cargo de los controladores, y de la creación de sus nuevos procesos.[10]

El código fuente de Zircon se encuentra en Google Source y está disponible bajo la licencia de código abierto MIT. Los desarrolladores afirman que, aunque no aceptan características nuevas de la comunidad, están dispuestos a recibir correcciones de errores de la comunidad.[11]

Referencias[editar]

  1. «Google's Fuchsia OS Magenta Becomes Zircon - Phoronix». www.phoronix.com (en inglés). Consultado el 20 de mayo de 2018. 
  2. «"Fuchsia no es Linux": Google da nuevos detalles de su próximo SO y su microkernel Zircon». Xataka. 12 de abril de 2018. Consultado el 20 de mayo de 2018. 
  3. «Primer commit de Zircon». GitHub (en inglés). Consultado el 20 de mayo de 2018. 
  4. «An Early Look at Zircon, Google Fuchsia New Microkernel». 15 de abril de 2018. Consultado el 20 de mayo de 2018. «Written in C++, Zircon is composed of a microkernel plus a set of userspace services, drivers, and libraries that are required to handle system boot, process launch, and other typical kernel tasks. Zircon syscalls are generally non-blocking, with the exception of wait_one, wait_many, port_wait and sleep.» 
  5. «An Early Look at Zircon, Google Fuchsia New Microkernel». 15 de abril de 2018. Consultado el 20 de mayo de 2018. «Zircon manages the following resources: processor time, memory, I/O, interrupts, and signaling and waiting. Resources are used from user land through handles. Handles have rights associated to them which convey privileges to perform actions such as duplicating, transferring, reading, writing, executing, etc.» 
  6. «Zircon and LK». fuchsia.googlesource.com (en inglés). Archivado desde el original el 18 de enero de 2018. Consultado el 20 de mayo de 2018. 
  7. «Zircon Signals». GitHub (en inglés). Consultado el 20 de mayo de 2018. 
  8. «zircon - Git at Google». fuchsia.googlesource.com (en inglés). Archivado desde el original el 20 de mayo de 2018. Consultado el 20 de mayo de 2018. «Zircon syscalls are generally non-blocking. The wait_one, wait_many port_wait and thread sleep being the notable exceptions.» 
  9. «Zircon Kernel objects». fuchsia.googlesource.com (en inglés). Archivado desde el original el 20 de mayo de 2018. Consultado el 20 de mayo de 2018. 
  10. «Zircon Device Model». fuchsia.googlesource.com (en inglés). Archivado desde el original el 20 de mayo de 2018. Consultado el 20 de mayo de 2018. 
  11. «Contributing Patches to Zircon». fuchsia.googlesource.com (en inglés). Archivado desde el original el 20 de mayo de 2018. Consultado el 20 de mayo de 2018.