Adeos ( Adaptive Domain Environment for Operating Systems ) es una capa de abstracción de hardware de nano-núcleos ( HAL ), o hipervisor , que opera entre el hardware de la computadora y el sistema operativo (SO) que se ejecuta en ella. [1] [2] Se diferencia de otros nanorneles en que no es solo una capa de bajo nivel para un núcleo externo. En cambio, está diseñado para ejecutar varios núcleos juntos, lo que lo hace similar a las tecnologías de virtualización completa . Es un software gratuito y de código abierto publicado bajo una Licencia Pública General GNU (GPL).
Autor (es) original (es) | Karim Yaghmour, Philippe Gerum |
---|---|
Versión inicial | 3 de junio de 2002 |
Sistema operativo | Linux |
Plataforma | IA-32 |
Disponible en | inglés |
Tipo | Capa de abstracción de hardware de nanokernel ( HAL ), hipervisor |
Licencia | GPL |
Sitio web | www |
Adeos proporciona un entorno flexible para compartir recursos de hardware entre múltiples sistemas operativos, o entre múltiples instancias de un sistema operativo, lo que permite que existan múltiples dominios priorizados simultáneamente en el mismo hardware.
Adeos se ha insertado con éxito debajo del kernel de Linux , lo que abre una gama de posibilidades, como agrupación en clústeres de multiprocesamiento simétrico (SMP), virtualización más eficiente, depuración del kernel sin parches y sistemas de computación en tiempo real (RT) para Linux .
Inusualmente entre los HAL, Adeos se puede cargar como un módulo de kernel cargable de Linux para permitir que otro sistema operativo se ejecute junto con él. Adeos se desarrolló en el contexto de la interfaz de aplicaciones en tiempo real ( RTAI ) para modularizarlo y separar el HAL del kernel en tiempo real.
Trabajo prioritario
Existen dos categorías de métodos para permitir que varios sistemas operativos se ejecuten en el mismo sistema. El primero está basado en simulación y proporciona un entorno virtual para ejecutar sistemas operativos adicionales. El segundo sugiere el uso de una capa de nano-núcleos para permitir el uso compartido de hardware. [1]
En la categoría de simulación, existen herramientas como Xen , VMware , Plex86 , VirtualPC y SimOS . También hay una máquina virtual basada en kernel (KVM) que es más similar a Adeos [ cita requerida ] , pero no es RT y requiere soporte de hardware de virtualización específico. Estos métodos se utilizan para usuarios que desean ejecutar aplicaciones ajenas a su sistema operativo base, no proporcionan control sobre el sistema operativo base al usuario. La simulación nunca fue diseñada para usarse en un entorno de producción. En la categoría nanokernel existen herramientas como SPACE, cache kernel y Exokernel . Todos estos sugieren la construcción de instalaciones de administración de hardware en miniatura que luego se pueden usar para construir sistemas operativos de producción [ cita requerida ] . El problema de este enfoque es que no aborda el problema de los sistemas operativos existentes y su base de usuarios. [1]
Adeos aborda los requisitos de ambas categorías de aplicación al proporcionar una capa simple que se inserta en un sistema operativo en ejecución sin modificar y, a partir de entonces, proporciona las primitivas y los mecanismos necesarios para permitir que varios sistemas operativos compartan el mismo entorno de hardware. Adeos no intenta imponer ninguna restricción al uso del hardware, por parte de los diferentes sistemas operativos, más de lo necesario para el propio funcionamiento de Adeos. En cambio, tal restricción debe ser impuesta por el administrador del sistema o el programador del sistema. Esto expone el sistema a una mala gestión, pero la idea detrás de Adeos es devolver el control a los administradores y programadores del sistema. [1]
Arquitectura
Adeos implementa una cola de señales . Cada vez que un periférico envía una señal, los diferentes sistemas operativos que se están ejecutando en la máquina se despiertan, a su vez, y deben decidir si aceptarán (manejarán), ignorarán, descartarán o darán por terminada la señal. Las señales no manejadas (o descartadas) por un SO se pasan al siguiente SO de la cadena. Las señales que terminan no se propagan a las últimas etapas. [1]
Como Adeos tiene que garantizar un acceso equitativo y confiable al hardware, toma el control de algunos comandos de hardware emitidos por los diferentes sistemas operativos; pero tampoco debe interferir demasiado en el comportamiento normal de los diferentes sistemas operativos. Cada sistema operativo está englobado en un dominio sobre el que tiene un control total. Este dominio puede incluir un espacio de direcciones privado y abstracciones de software tales como procesos, memoria virtual, sistemas de archivos, etc. Adeos no intenta imponer ninguna política de uso del hardware excepto cuando sea necesario para su funcionamiento. La tarea de determinar la política se deja al arquitecto del sistema. [1]
Adeos tubo de interrupción
Adeos utiliza una tubería de interrupción para propagar las interrupciones a través de los diferentes dominios que se ejecutan en el hardware. Como algunos dominios pueden preferir ser los primeros en recibir interrupciones de hardware, Adeos proporciona un mecanismo para que los dominios tengan acceso al despacho de interrupciones prioritarias. En efecto, Adeos coloca el manejador de interrupciones del dominio solicitante y las tablas que lo acompañan, que pueden llamarse como un mecanismo de interrupción en terminología SPACE, en las primeras etapas de la canalización de interrupciones. Los dominios pueden controlar si aceptan, ignoran, descartan o terminan las interrupciones. Cada uno de estos tiene un efecto diferente y se controla de manera diferente. [1]
Aceptar interrupciones es el estado normal del mecanismo de interrupción de un dominio. Cuando Adeos encuentra un dominio que está aceptando interrupciones, convoca a su controlador de interrupciones después de haber configurado el entorno de CPU requerido y el contenido de la pila para que el controlador de interrupciones funcione correctamente. Entonces, el sistema operativo puede decidir operar cualquier número de operaciones, incluida la programación de tareas. Una vez que el sistema operativo está listo, la canalización procede según lo planeado mediante la propagación de interrupciones a lo largo de la canalización. [1]
Cuando un sistema operativo en un dominio no quiere ser interrumpido, por cualquier motivo, le pide a Adeos que detenga la etapa que ocupa su dominio en la tubería de interrupción. Al hacerlo, las interrupciones no avanzan en la tubería y se detienen en la etapa ocupada por el dominio. Cuando el sistema operativo deja de querer ser ininterrumpido, le pide a Adeos que instale la tubería y, a partir de entonces, todas las interrupciones que se detuvieron en la etapa correspondiente siguen su ruta a las otras etapas de la tubería. [1]
Cuando un dominio descarta interrupciones, la interrupción pasa por la etapa ocupada por el dominio y continúa hacia las otras etapas. Cuando un dominio termina con interrupciones, las interrupciones que termina no se propagan a las últimas etapas. El descarte y la terminación de interrupciones solo es posible cuando el sistema operativo de un dominio reconoce Adeos.
Dado que algunos sistemas operativos no reconocen Adeos, es posible crear un dominio que solo sirva como controlador para ese sistema operativo. Por lo tanto, en la tubería de interrupción, esta etapa siempre precede a la etapa del dominio manejado y puede tomar acciones para ese dominio con Adeos con el fin de proporcionar al SO del dominio manejado la ilusión de un funcionamiento normal del sistema.
Una vez que Adeos termina de atravesar la canalización, comprueba si todos los dominios están inactivos. Si ese es el caso, entonces invoca su tarea inactiva. Esta tarea permanece activa hasta que se produce la siguiente interrupción. Si todos los dominios no están inactivos, restaura el procesador al estado que tenía antes de que la interrupción entrara en la canalización y la ejecución continúa donde lo había dejado. Dado que Adeos depende en gran medida del hardware, muchos detalles son específicos de una de sus implementaciones particulares. [1]
Aplicabilidad
Uso compartido de recursos del sistema operativo de propósito general
El uso compartido de recursos del sistema operativo de propósito general es uno de los principales objetivos de Adeos, para proporcionar un entorno que permita que múltiples sistemas operativos de propósito general compartan el mismo hardware. [1]
Desarrollo del sistema operativo
El desarrollo de sistemas operativos suele ser un proceso complicado que a veces requiere hardware adicional, como emuladores en circuito, para probar el hardware en el que se ejecuta un sistema operativo. Con Adeos, el desarrollo del sistema operativo se facilita ya que cualquier comportamiento no deseado puede ser controlado por un controlador de dominio apropiado. También puede proporcionar un controlador de dominio predeterminado para el desarrollo del sistema operativo bajo el cual los desarrolladores pueden haber controlado el acceso directo al hardware que deben controlar. Como Adeos es en sí mismo un módulo de kernel, dichos controladores de dominio de desarrollo pueden desarrollarse independientemente de Adeos. [1]
Detectores y depuradores de kernel sin parche
Adeos proporciona una forma para que los depuradores y exploradores del kernel tomen el control de Linux sin modificarlo. Al igual que con otros dominios de Adeos, estas instalaciones se cargarían como módulos de kernel normales y, a partir de entonces, solicitarían un dominio de anillo cero de Adeos. Una vez hecho esto, pueden solicitar el despacho de interrupciones prioritarias en la canalización de interrupciones. Por lo tanto, antes de que Linux llegue a manejar cualquier interrupción, podrá interceptar esas interrupciones y realizar las tareas de depuración solicitadas. Esto también se puede extender a los perfiladores de rendimiento y otras herramientas de desarrollo similares. [1]
Ver también
- Xenomai
- Nanokernel
- Hardware abstracción capa
- HAL (software)
Referencias
- ^ a b c d e f g h i j k l m "Entorno de dominio adaptable para sistemas operativos" (PDF) . Entorno de dominio adaptativo para sistemas operativos . Opersys . Consultado el 27 de abril de 2012 .
- ^ "Bienvenidos a Adeos" . El Proyecto Adeos . El Proyecto Xenomai. Archivado desde el original el 6 de marzo de 2004 . Consultado el 29 de septiembre de 2020 .
enlaces externos
- Página web oficial
- Espacio de trabajo de Adeos