Avros
Unix-подобная встроенная ОС Microkernel для Amtel AVR ЦП
Работает на ATMEGA1284P с 16K RAM
Функции:
- Минимальный Mickernel с мощностью передачи сообщений, большинство служб ОС («Процесс», файловая система, драйверы устройств) реализованы отдельными задачами (серверами), которые общаются со своими клиентами (пользовательские задачи) и друг с другом по передаче сообщений
- В настоящее время реализованная объект ОС является Unix, со знакомыми системными вызовами, объект ОС в основном определяется задачами обслуживания ОС (серверы)
- Несколько объектов ОС могут сосуществовать на одном процессоре, делясь одним и тем же микрокернером
- Кооперативные и/или временные прерывания, основанные на прерывании прерываний
- Виртуальная файловая система с Unix -Pipes - (имена файлов и папки еще не реализованы - вы должны обратиться к каждому файлу с их соответствующими дуэтами устройства/номера INODE, например, синтаксис: '2/1')
- Драйверы устройств выполняются в виде отдельных задач (потоков), включая трубопроводное устройство
- Интерфейс драйвера унифицированного устройства
- Доступ к оболочке.
Репозиторий
main.c: первая задача и основная функция - ОС сначала выполняет эту задачу. Он создает серверы по порядку (TS, VFS, ES, PM, см. Ниже для значения), устанавливает устройства, регистрирует исполняемые файлы, а затем, наконец, порождает «init», которая является корневой задачей для каждой пользовательской задачи.
Ядро: Microkernel и HAL (уровень аппаратной абстракции) исходный код
- Основные функциональные возможности: создание и планирование задач (приоритетный круглый робин), передача сообщений, обработка прерываний, распределение памяти (сервер диспетчера памяти находится в стадии разработки, см. Misc/)
- idletask - запускается, когда больше нечего запускать - останавливает процессор до следующего прерывания, чтобы сохранить питание
USR
серверы:
- PM: Manager - Manager -
Процесс иерархия, процессы зомби, exit (), wait (), exec (), spawntask () - VFS: Virtual File Server - файловые дескрипторы, таблица FILP, inodes, open (), close (), read (), write (), dup (), pipe (), mkdev (), mknod (), fstat () и т. Д.
- SEMA: Simple Semaphore Server (в настоящее время не используется) - p (), v ()
- TS: Time Server - обработчик прерываний таймера, Sleep (), время работы, в реальном времени
- Пример: Сервер исполнителей - регистры запускаемых приложений и предоставляют им PM, когда задача вызывает exec () (AVR - это процессор архитектуры Гарварда, ОС не может загрузить двоичный файл и сжечь его в память программы флэш -программы)
Водители:
- TTY_USART0: драйвер TTY, управляемый прерыванием для устройства USART 0
- Memfile: устройство для управления управлением INODE
- Pipedev: Dipe Device (Multi-Read, Multi-Write)
DOC: документация (просмотр с DIA: https://wiki.gnome.org/apps/dia/)
lib: src/queue.c: вдвойне связанный список