Avros
MicroKernel OS incorporado do tipo UNIX para atmel AVR CPUS
Executa no ATMEGA1284P com 16K RAM
Características:
- MicroKernel mínimo com instalações de passagem de mensagens, a maioria dos serviços do sistema operacional (gerenciamento de "processo", sistema de arquivos, drivers de dispositivos) são implementados por tarefas separadas (servidores) que se comunicam com seus clientes (tarefas do usuário) e entre si pela passagem de mensagens.
- A entidade do sistema operacional atualmente implementada é do tipo Unix, com chamadas de sistema familiares, a entidade do sistema operacional é definida principalmente pelas tarefas de serviço do sistema operacional (servidores)
- Várias entidades do sistema operacional podem coexistir na mesma CPU, compartilhando o mesmo microkernel
- Cooperativa e/ou interrupção de interrupções de interrupção de interrupção
- Sistema de arquivos virtual com unix -pipes - (nomes de arquivos e pastas ainda não foram implementados - você deve se referir a cada arquivo com seus respectivos duetos de dispositivo/número de inode, por exemplo, sintaxe: '2/1')
- Os drivers de dispositivo estão funcionando como tarefas separadas (threads), incluindo dispositivo de tubulação
- Interface do driver de dispositivo unificado
- Acesso à concha via USARTS, várias sessões podem ser geradas no init.
Repositório
Main.C: Primeira tarefa e função principal - o sistema operacional executa esta tarefa primeiro. Ele cria os servidores em ordem (TS, VFS, ES, PM, veja abaixo o significado), configura dispositivos, registra os executáveis e finalmente gera 'init', que é a tarefa raiz para cada tarefa do usuário.
kernel: microkernel e hal (camada de abstração de hardware) código -fonte
- Funcionalidades básicas: criação e agendamento de tarefas (prioridade Round Robin), passagem de mensagens, manuseio de interrupções, alocação de memória (o servidor do gerenciador de memória está em desenvolvimento, consulte Misc/)
- IdleTask - é executado quando não há mais nada para executar - interrompe a CPU até a próxima interrupção para economizar energia
USR
servidores:
- PM: Gerenciador de processos -
Hierarquia de processos, processos de zumbi, saída (), wait (), exec (), spawnTask () - VFS: servidor de arquivo virtual - descritores de arquivos, tabela filp, inodes, open (), close (), read (), write (), dup (), pipe (), mkdev (), mknod (), fstat (), etc ...
- SEMA: SIMPLEMENTE SEMERVER EMAPHORE (atualmente não utilizado) - P (), V ()
- TS: Time Server - Handler de interrupção do timer, Sleep (), Uptime, tempo real
- Ex: Executíveis Server - Registra aplicativos executáveis e os fornece ao PM quando uma tarefa chama Exec () (AVR é uma CPU da Harvard Architecture, o sistema operacional não pode carregar o binário e queima na memória do programa flash)
Drivers:
- tty_usart0: driver TTY acionado por interrupção para o dispositivo USART 0
- MEMFILE: Memory Drive Dispositivo com gerenciamento de inode
- Pipedev: dispositivo de tubulação (leitura múltipla, multi-escritos)
Doc: Documentação (veja com DIA: https://wiki.gnome.org/apps/dia/)
lib: src/fileue.c: lista duplamente vinculada