avros
Microkernel OS de type UNIX pour les processeurs ATMEL AVR
Fonctionne sur atmega1284p avec 16k RAM
Caractéristiques:
- Microkernel minimal avec des installations de passage de messages, la majorité des services du système d'exploitation (gestion "procédé", système de fichiers, pilotes de périphérique) sont implémentés par des tâches (serveurs) distinctes qui communiquent avec leurs clients (tâches utilisateur) et entre elles par un message qui passe des messages
- L'entité OS actuellement implémentée est en forme d'Unix, avec des appels système familiers, l'entité OS est principalement définie par les tâches de service OS (serveurs)
- Plusieurs entités de système d'exploitation peuvent coexister sur le même processeur, partageant le même microkernel
- Multitâche préemptif basé sur une interruption coopérative et / ou temporelle
- Système de fichiers virtuel avec UNIX-Pipes - (Les noms de fichiers et les dossiers ne sont pas encore implémentés - vous devez vous référer à chaque fichier avec leur appareil de périphérique / inode respectif, par exemple Syntaxe: '2/1')
- Les pilotes de périphérique s'exécutent en tâches (filetages) séparés, y compris le périphérique de tuyau
- Interface du pilote de périphérique unifié
- Accès à la coquille via USARTS, plusieurs séances peuvent être engendrées sur init.
Dépôt
main.c: première tâche et fonction principale - le système d'exploitation exécute d'abord cette tâche. Il crée les serveurs dans Ordre (TS, VFS, ES, PM, voir ci-dessous pour le sens), configure des appareils, enregistre les exécutables, puis pose enfin 'init' qui est la tâche racine pour chaque tâche utilisateur.
Noyau: Microkernel et HAL (Couche d'abstraction matérielle)
- Fonctionnalités de base: création et planification des tâches (priorité à la ronde), passage de messages, manipulation d'interruption, allocation de mémoire (le serveur de gestion de mémoire est en cours de développement, voir MISC /)
- Idletask - fonctionne quand il n'y a rien d'autre à courir - arrête le CPU jusqu'à la prochaine interruption pour économiser de l'énergie
usr
Serveurs:
- PM: Manager de processus -
Hiérarchie de processus, processus zombies, exit (), wait (), exec (), spawntask () - VFS: serveur de fichiers virtuel - Descripteurs de fichiers, Table Filp, Inodes, Open (), Close (), Read (), Write (), DUP (), Pipe (), Mkdev (), MkNod (), FStAT (), etc.
- SEMA: serveur de sémaphore simple (actuellement inutilisé) - p (), v ()
- TS: Time Server - Timer Interrupt Handler, Sleep (), Uptime, temps réel
- Ex: Executables Server - Registre les applications exécutables et les fournit à PM lorsqu'une tâche appelle Exec () (AVR est un processeur d'architecture de Harvard, le système d'exploitation ne peut pas charger le binaire et le brûler dans la mémoire du programme flash)
Conducteurs:
- TTY_USART0: Pilote TTY à interruption pour le périphérique USART 0
- MemFile: périphérique de lecteur de mémoire avec gestion d'inode
- PIPEDEV: Dispositif de tuyau (multi-lecture, Multi-Write)
DOC: Documentation (Voir avec DIA: https://wiki.gnome.org/apps/dia/)
lib: src / queue.c: liste à double lien