stringtranslate.com

Genodo

Genode es un marco de sistema operativo (SO) de software gratuito 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 se destaca como uno de los pocos sistemas operativos de código abierto que no deriva de un sistema operativo propietario, como Unix . La filosofía de diseño característica es que una pequeña base informática confiable es la principal preocupación en un sistema operativo 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 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 más complejos derivados de Unix. Por esta razón, el marco se ha utilizado como sistema base para la investigación en campos tales como virtualización, [12] comunicación entre procesos , [13] aislamiento de pila IP , [14] [15] monitoreo, [16] y desarrollo de software . [17] [18]

Historia

Genode se concibió por primera vez 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 utilice seguridad basada en capacidades . Este informe fue motivado en parte por una investigación sobre microhipervisores L4 [20] realizada durante el mismo tiempo. Tras el éxito de uno de los primeros prototipos, los autores del informe fundaron la empresa Genode Labs para desarrollar Bastei como Genode OS Framework.

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 GNU Affero 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 aplicaciones del sistema (ABI), 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 la versión 18.02, se proporciona un derivado de propósito general llamado Sculpt con implementación binaria en el destino.

Características arquitectonicas

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 confiabilidad y corrección. Genode extiende esta filosofía al espacio del usuario componiendo aplicaciones complejas a partir de componentes pequeños. 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 jerárquico del sistema produce una partición intuitiva y una reducción de privilegios a medida que los subsistemas especializados se anidan dentro de subsistemas más generales, lo que mitiga el problema adjunto confuso endémico de la política de sistema centralizado o de superusuario .

El marco está diseñado para ser alojado en microkernels; sin embargo, las características de cualquier microkernel determinado se encuentran principalmente dentro de un conjunto común, y los kernels monolíticos implementan un superconjunto de esas características. Resumir estas características permite a Genode actuar como espacio de usuario para una variedad de microkernels L4, [21] [22] y Linux.

Crítica

C++

Genode es a menudo criticado por la elección de su lenguaje de implementación, C++ (algunos otros sistemas operativos implementados en C++ incluyen BeOS , Fuchsia , Ghost, Haiku , IncludeOS , OSv , Palm OS , ReactOS , SerenityOS , Syllable y Symbian ). Esta crítica generalmente afirma que C++ es una mala elección para implementar API y bibliotecas del sistema debido a la complejidad inherente de C++ y la dificultad para analizar el código para determinar su comportamiento correcto. Si bien Genode utiliza herencia múltiple y plantillas en su biblioteca del 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 de el tiempo de ejecución del lenguaje. [23] No es posible un análisis estático completo de C++. Sin embargo, el proyecto Genode publica pruebas unitarias para análisis empíricos.

XML

Los componentes de Genode consumen y publican el estado utilizando datos estructurados serializados en XML , en contraste con el modelo de texto plano de los derivados de Unix. El marco Genode utiliza XML de manera efectiva en todos sus componentes porque XML se analiza y genera fácilmente mediante programación y, al mismo tiempo, es posible comprenderlo y editarlo manualmente.

Espacio de nombres local

Genode carece de cualquier espacio de nombres global práctico ; no existe 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 componentes puede percibirse como una labor intensa en comparación con Unix. Sin embargo, la administración compartimentada permite que los subsistemas sean administrados por administradores de sistemas que no son de confianza entre sí 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 sistema básico pequeño con detección y configuración automática de dispositivos, algunas interfaces de control GUI y interfaces para el administrador de paquetes Genode. El sistema no incluye un entorno de escritorio completo, pero requiere que los usuarios implementen máquinas virtuales que alojen sistemas operativos tradicionales para obtener un escritorio con todas las funciones. Sculpt se distingue del marco del sistema operativo Genode en que depende en gran medida de la reconfiguración dinámica utilizando componentes de control privilegiados en contraste con los sistemas especializados con políticas estáticas.

Ver también

Referencias

  1. ^ "Versión 23.11". 30 de noviembre de 2023 . Consultado el 19 de diciembre de 2023 .
  2. ^ "Genode OS agrega compatibilidad con RISC-V".
  3. ^ Larabel, Michael. "Genode está desarrollando un multiplexor de GPU para hardware de gráficos Intel". Forónix .
  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 14 de junio de 2018 . Consultado el 1 de junio de 2018 .
  6. ^ Larabel, Michael. "Redox OS, MINIX, Hurd y Genode también tuvieron su tiempo en FOSDEM". Forónix .
  7. ^ Baader, Hans-Joachim. "Genodo 2018.2 con Sculpt OS". pro-linux.de .
  8. ^ Larabel, Michael. "Sculpt pretende ser un sistema operativo de uso general construido sobre Genode".
  9. ^ Tarasikov, Alejandro (11 de mayo de 2013). "Transferencia de Genode a hardware comercial". Odio el software . Blogger.
  10. ^ "Muen: un kernel de separación x86/64 para una alta seguridad".
  11. ^ Williams, Juan. "Inspeccionar datos desde la seguridad de su entorno de ejecución confiable" (PDF) .
  12. ^ "Embajadas: refactorización radical de la Web" (PDF) . USENIX.
  13. ^ Wegner, Martín; Holthusen, Sönke (11 de diciembre de 2014). "Especificación e idioma 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 de CCC". ccc-project.org . Archivado desde el original el 23 de enero de 2019 . Consultado el 1 de junio de 2018 .
  15. ^ Hamad, Mahoma. "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 la 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 14 de junio de 2018 . Consultado el 1 de junio de 2018 .
  22. ^ "Proyectos comunitarios SeL4". sel4.sistemas .
  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