RTLinux | |
---|---|
Tipo de | sistema operativo en tiempo real |
Desarrollador | Victor Yodaiken, Mikhail Barabanov ( en: Instituto de Minería y Tecnología de Nuevo México ), FSMLabs, Wind River Systems |
Escrito en | C |
Sistema operativo | linux |
Primera edición | 1996 |
Licencia | GPLv2 |
Sitio web | rt.wiki.kernel.org/index… |
RTLinux es un sistema operativo duro en tiempo real con microkernel que ejecuta Linux como un proceso totalmente interrumpible . El trabajo en RTLinux se completó en 2007 y, basándose en los desarrollos de este sistema operativo, se lanzó el proyecto propietario Wind River .
Los desarrolladores de RTLinux tomaron el camino que permite ejecutar el kernel de Linux desde el nanokernel en tiempo real como una tarea con la prioridad más baja . En RTLinux, todas las interrupciones son manejadas por el kernel en tiempo real, que incluye su propio programador de tareas , controlador de interrupciones y código de biblioteca. Si no hay un controlador en tiempo real para algún tipo de interrupción, se pasa a Linux. De hecho, Linux es una tarea RTOS inactiva (inactiva) que solo se inicia si no se ejecuta ninguna tarea en tiempo real. Al mismo tiempo, se imponen algunas restricciones a la tarea de Linux, que, sin embargo, son transparentes para el programador.
Linux no puede realizar las siguientes operaciones:
La clave para la implementación de este sistema es el controlador que emula el sistema de control de interrupciones , que Linux llama cuando intenta bloquear las interrupciones. En este caso, el controlador intercepta la solicitud, la guarda y devuelve el control a Linux.
Todas las interrupciones de hardware son interceptadas por el kernel RTOS. Cuando ocurre una interrupción , el kernel RTLinux decide qué hacer. Si esta interrupción necesita ser manejada por un controlador en tiempo real, entonces el kernel llama al controlador apropiado. De lo contrario, o si el controlador en tiempo real dice que quiere compartir esta interrupción con Linux, el controlador se establece en un estado pendiente. Si Linux solicitó habilitar las interrupciones, se emulan las interrupciones que están pendientes.
El kernel RTLinux está diseñado de tal manera que el kernel en tiempo real nunca necesita esperar a que un recurso ocupado por un proceso de Linux se libere.
Se proporcionan las siguientes herramientas para el intercambio de datos entre RTOS y Linux:
El principio clave detrás de la construcción de RTLinux es usar tanto Linux como sea posible y la menor cantidad de RTLinux posible. De hecho, Linux se encarga de la inicialización del sistema y del dispositivo , así como de la asignación dinámica de recursos. RTLinux es responsable solo de la programación de tareas en tiempo real y el manejo de interrupciones. Los procesos en tiempo real se implementan como módulos Linux cargables para facilitar su ejecución en el contexto del kernel, manteniendo el sistema modular y extensible .
Una aplicación en tiempo real con RTLinux generalmente consta de dos partes independientes: un proceso ejecutado por el kernel RTLinux y una aplicación normal de Linux.
Este enfoque modular para escribir aplicaciones es inherente a muchas extensiones en tiempo real para sistemas multipropósito, donde la tarea en tiempo real se ejecuta independientemente del sistema operativo. Los desarrolladores ya adoptaron un esquema según el cual las tareas críticas en el tiempo se programan utilizando las API proporcionadas por la extensión en tiempo real, y todas las funciones del servicio y la interfaz de usuario se asignan al poder del sistema operativo. Con este enfoque, el programador solo necesita aprender la API del controlador de eventos en tiempo real.
Sistemas operativos en tiempo real | |
---|---|
| |
abierto | |
Propiedad |
|
histórico |
|
|