stringtranslate.com

Genodo

Genode es un sistema operativo (SO) de software libre y de código abierto que consta de una capa de abstracción de microkernel y un conjunto de componentes de espacio de usuario . [4] [5] [6] El marco es notable por ser uno de los pocos sistemas operativos de código abierto que no se deriva de un SO propietario, como Unix . La filosofía de diseño característica es que una base informática pequeña y confiable es la principal preocupación en un SO orientado a la seguridad.

Genode se puede utilizar como base para un sistema operativo de computadora de escritorio [7] [8] o tableta [9] o como monitor de máquina virtual para sistemas operativos invitados. El marco se ha utilizado como un componente confiable de sistemas de virtualización seguros tanto para x86 [10] como para ARM . [11]

La pequeña base de código de Genode lo convierte en una alternativa flexible a los sistemas operativos derivados de Unix más complejos. Por esta razón, el marco se ha utilizado como sistema base para la investigación en campos como la virtualización, [12] la comunicación entre procesos , [13] el aislamiento de la pila IP , [14] [15] la monitorización, [16] y el desarrollo de software . [17] [18]

Historia

Genode fue concebido inicialmente como el informe de investigación Bastei OS Architecture [19] en la Universidad Técnica de Dresde ( TU Dresden ). El objetivo del informe era determinar la viabilidad de un sistema operativo basado en componentes que utilizase seguridad basada en capacidades . Este informe estuvo motivado en parte por la investigación sobre microhipervisores L4 [20] realizada durante el mismo tiempo. Tras el éxito de un prototipo inicial, los autores del informe fundaron la empresa Genode Labs para desarrollar Bastei como el marco del sistema operativo Genode.

Lanzamientos

El proyecto se desarrolla públicamente como un proyecto de código abierto publicado bajo los términos de la Licencia Pública General Affero de GNU con una entidad comercial que ofrece licencias alternativas. Los lanzamientos se programan en intervalos de tres meses para realizar cambios en la interfaz binaria de la aplicación (ABI) del sistema, la interfaz de programación de aplicaciones (API) y la documentación de problemas. El marco del sistema operativo está disponible en forma de código fuente y, tras el lanzamiento de la versión 18.02, se proporciona un derivado de propósito general llamado Sculpt con implementación binaria en el destino.

Características arquitectónicas

Genode se basa en la filosofía general de los microkernels: cuanto más pequeño y simple sea el código, más fácil será verificar su fiabilidad y corrección. Genode extiende esta filosofía al espacio de usuario al componer aplicaciones complejas a partir de pequeños componentes. Cada componente existe en una estricta jerarquía de relaciones padre-hijo. Cualquier componente que actúe como padre puede aplicar políticas de acceso a recursos y comunicación entre procesos (IPC) a sus hijos. Este diseño de sistema jerárquico produce particiones intuitivas y desescalada de privilegios a medida que los subsistemas especializados se anidan dentro de subsistemas más generales, lo que mitiga el confuso problema de los subordinados endémico de las políticas de sistemas centralizados o de superusuarios .

El marco está diseñado para ser alojado por microkernels, sin embargo, las características de cualquier microkernel dado caen mayoritariamente dentro de un conjunto común, y los kernels monolíticos implementan un superconjunto de esas características. La abstracción de estas características permite que Genode actúe como espacio de usuario para una variedad de microkernels L4, [21] [22] y Linux.

Crítica

C++

Genode es criticado a menudo por la elección de su lenguaje de implementación, C++ (algunos otros sistemas operativos implementados en C++ incluyen BeOS , Fuchsia , Ghost, Haiku , IncludeOS , Managarm, OSv , Palm OS , ReactOS , SerenityOS , Syllable y Symbian ). Esta crítica generalmente afirma que C++ es una mala elección para implementar bibliotecas de sistema y API debido a la complejidad inherente de C++ y la dificultad de analizar el código para un comportamiento correcto. Si bien Genode hace uso de herencia múltiple y plantillas en su biblioteca de sistema, el uso de la biblioteca estándar de C++ no está permitido y las características del lenguaje que dependen del estado global implícito, como el almacenamiento local de subprocesos y el asignador global, se han eliminado del entorno de ejecución del lenguaje. [23] No es posible realizar un análisis estático completo de C++. Sin embargo, el proyecto Genode publica pruebas unitarias para el análisis empírico.

XML

Los componentes de Genode consumen y publican el estado utilizando datos estructurados serializados en XML , en contraste con el modelo de texto simple de los derivados de Unix. El marco Genode hace uso de XML en la práctica en todos sus componentes porque XML se analiza y genera fácilmente de manera programática y, al mismo tiempo, es posible comprenderlo y editarlo manualmente.

Espacio de nombres local

Genode carece de un espacio de nombres global práctico ; no hay un sistema de archivos global ni un registro de procesos ni puntos finales de IPC. Esto contrasta con sistemas como Unix, que cuentan con un sistema de archivos ubicuo y permiten que un contexto de superusuario administre arbitrariamente cualquier proceso dentro del sistema. Declarar explícitamente los permisos y el enrutamiento de los componentes puede percibirse como una tarea laboriosa en comparación con Unix. Sin embargo, la administración compartimentalizada permite que los subsistemas sean administrados por administradores de sistemas que no son de confianza mutua en la misma máquina sin recurrir a la virtualización, un método de aislamiento común.

Esculpir

El proyecto Genode publica un sistema operativo de escritorio llamado Sculpt que apunta a las computadoras portátiles de consumo contemporáneas . [24] Sculpt es un pequeño sistema base con detección y configuración automática de dispositivos, algunas interfaces de control GUI y frontends para el administrador de paquetes Genode. El sistema no cuenta con un entorno de escritorio completo, sino que requiere que los usuarios implementen máquinas virtuales que alojan sistemas operativos tradicionales para un escritorio con todas las funciones. Sculpt se distingue del marco del sistema operativo Genode en que se basa en gran medida en la reconfiguración dinámica utilizando componentes de control privilegiados en contraste con los sistemas especializados con políticas estáticas.

Véase también

Referencias

  1. ^ "Versión 24.10". 30 de octubre de 2024. Consultado el 21 de noviembre de 2024 .
  2. ^ "Genode OS agrega soporte RISC-V".
  3. ^ Larabel, Michael. "Genode está desarrollando un multiplexor de GPU para hardware gráfico de Intel". Phoronix .
  4. ^ "Introducción del marco del sistema operativo Genode". archive.fosdem.org/2012 .
  5. ^ "Sistemas operativos basados ​​en L4". L4hq.org . Archivado desde el original el 2018-06-14 . Consultado el 2018-06-01 .
  6. ^ Larabel, Michael. "Redox OS, MINIX, Hurd y Genode también tuvieron su momento en FOSDEM". Phoronix .
  7. ^ Baader, Hans-Joachim. "Genodo 2018.2 con Sculpt OS". pro-linux.de .
  8. ^ Larabel, Michael. "Sculpt aspira a ser un sistema operativo de propósito general basado en Genode".
  9. ^ Tarasikov, Alexander (11 de mayo de 2013). "Portar Genode a hardware comercial". Odio el software . Blogger.
  10. ^ "Muen: un núcleo de separación x86/64 para alta seguridad".
  11. ^ Williams, John. "Inspección de datos desde la seguridad de su entorno de ejecución de confianza" (PDF) .
  12. ^ "Embajadas: refactorizando radicalmente la Web" (PDF) . USENIX.
  13. ^ Wegner, Martin; Holthusen, Sönke (11 de diciembre de 2014). «Especificación y lenguaje del contrato». ccc-project.org . Archivado desde el original el 27 de marzo de 2019. Consultado el 1 de junio de 2018 .
  14. ^ Hamad, Mohammad (6 de enero de 2016). "El módulo de comunicación segura del CCC". ccc-project.org . Archivado desde el original el 23 de enero de 2019. Consultado el 1 de junio de 2018 .
  15. ^ Hamad, Mohammad. "Un marco de comunicación para el control de acceso distribuido en sistemas basados ​​en microkernel" (PDF) .
  16. ^ Pruthiviraj, B.; Madhusuthun, GS; Vijayasarathy, S.; Chakrapani, K. "Un sistema operativo seguro basado en microkernel que utiliza Genode Framework" (PDF) . JATIT .
  17. ^ Hähne, Ludwig. "Comparación empírica de SCons y GNU Make" (PDF) .
  18. ^ Millo-Sánchez, Reinier; Paz Rodríguez, Waldo; Fajardo-Moya, Alexis. "Genode OS Framework, un framework para el desarrollo de sistemas embebidos". Puerta de investigación .
  19. ^ "Informe técnico de TU Dresden TUD-FI06-07" (PDF) .
  20. ^ "Microhipervisor NOVA".
  21. ^ "Sistemas operativos basados ​​en L4". L4hq.org . Archivado desde el original el 2018-06-14 . Consultado el 2018-06-01 .
  22. ^ "Proyectos comunitarios SeL4". sel4.systems .
  23. ^ "Dialecto C++ consciente de Genode". genodians.org . Consultado el 29 de noviembre de 2019 .
  24. ^ "Notas de la versión 18.02".

Enlaces externos

Sitios web oficiales
Proyectos de investigación