RTLinux

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 15 de mayo de 2018; las comprobaciones requieren 3 ediciones .
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 .

Funciones de implementación

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.

Deficiencias de la implementación de RTLinux

Otras extensiones en tiempo real para Linux

Enlaces