avros
OS de microkernel integrado con forma de UNIX para ATMEL AVR CPU
Se ejecuta en ATMEGA1284P con 16k RAM
Características:
- El microkernel mínimo con las instalaciones de aprobación de mensajes, la mayoría de los servicios del sistema operativo (administración de "proceso", sistema de archivos, controladores de dispositivos) se implementan mediante tareas (servidores) separadas que se comunican con sus clientes (tareas de usuario) y entre sí por mensaje de mensaje.
- La entidad del sistema operativo implementada actualmente es similar a UNIX, con llamadas de sistema familiares, la entidad del sistema operativo está definida principalmente por las tareas de servicio del sistema operativo (servidores)
- Múltiples entidades del sistema operativo pueden coexistir en la misma CPU, compartiendo el mismo microkernel
- La multitarea preventiva basada en la interrupción cooperativa y/o del temporizador
- Sistema de archivos virtuales con UNIX -PIPES - (los nombres de archivo y las carpetas aún no se implementan - debe consultar cada archivo con sus respectivos duetos de número/inodoro, por ejemplo, sintaxis: '2/1')
- Los controladores de dispositivos se ejecutan como tareas separadas (roscas), incluido el dispositivo de tubería
- Interfaz de controlador de dispositivo unificado
- Acceso de shell a través de USarts, se pueden generar múltiples sesiones al init.
Repositorio
Main.c: Primera tarea y función principal: el sistema operativo ejecuta esta tarea primero. Crea los servidores en orden (TS, VFS, ES, PM, ver a continuación para el significado), establece dispositivos, registra los ejecutables, y finalmente genera 'init', que es la tarea raíz para cada tarea de usuario.
Código fuente del núcleo: microkernel y HAL (capa de abstracción de hardware)
- Funcionalidades básicas: creación y programación de tareas (prioridad redonda), aprobación de mensajes, manejo de interrupciones, asignación de memoria (Memory Manager Server está en desarrollo, ver MISC/)
- Idletask: se ejecuta cuando no hay nada más que ejecutar - detiene la CPU hasta la próxima interrupción para guardar energía
USR
Servidores:
- PM: Manager de procesos -
Jerarquía de procesos, procesos de zombie, salida (), Wait (), exec (), SpawnTask () - VFS: Virtual File Server: descriptores de archivos, tabla FILP, inodes, abrir (), cerrar (), leer (), escribir (), dup (), pipe (), mkdev (), mknod (), fstat (), etc ...
- SEMA: servidor SEMAPHORE simple (actualmente sin usar) - P (), V ()
- TS: Time Server - Handler de interrupción del temporizador, Sleep (), tiempo de actividad, tiempo real
- Ej: Servidor de ejecutables: registros de aplicaciones ejecutables y las proporciona a PM cuando una tarea llama a Exec () (AVR es una CPU de arquitectura de Harvard, el sistema operativo no puede cargar el binario y grabarlo en la memoria del programa Flash)
conductores:
- TTY_USART0: controlador TTY impulsado por la interrupción para el dispositivo USART 0
- MEMFILE: Dispositivo de unidad de memoria con administración de inodos
- PipeDev: Dispositivo de tubería (con lectura múltiple, múltiple en escritura)
Doc: Documentación (Ver con DIA: https://wiki.gnome.org/apps/dia/)
lib: src/queue.c: lista doblemente vinculada