Вышла очередная версия встраиваемой операционной системы реального времени BuguRTOS-1.0.0.
BuguRTOS — это ядро ОСРВ, ориентированное для использования на микроконтроллерах, и может работать в режимах мягкого и жесткого реального времени.
Характерными особенностями BuguRTOS являются:
- Отказ от управления памятью в ядре - рекомендуется статическое выделение памяти.
- Все системные вызовы имеют сложность O(1).
- Минимальные требования к размеру стеков процессов (задач).
В данный момент поддерживаются ветки 0.6.x и 1.0.x, поддержка ветки 0.7.х прекращена.
С выходом первой версии проект переходит на семантическое версионирование. BuguRTOS ветки 1.0.х имеет следующие особенности:
- Обработка прерываний в два этапа: обработчик прерывания выполняет минимальную необходимую обработку, после чего генерирует виртуальное прерывание, которое делает все остальное.
- Отдельный поток ядра, который обрабатывает виртуальные прерывания и системные вызовы, реализует функции планировщика и работу на холостом ходу.
- Отказ от традиционных блокирующих примитивов синхронизации в ядре, вместо них есть один обобщенный примитив (bgrt_sync_t), который можно адаптировать под различные задачи.
- Реализация традиционных примитивов синхронизации в библиотеках, фактически BuguRTOS-1.0.х представляет собой платформу для прототипирования/моделирования API различных ОСРВ.
В данный момент написана библиотека native, реализующая:
- Мьютексы.
- Семафоры.
- Условные переменные.
- Сигналы (что-то вроде событий).
- Блокирующий IPC.
В BuguRTOS-1.0.0 произошли следующие изменения:
- Удален процесс холостого хода и всё, что с ним связано(см. выше).
- Добавлен слой виртуализации прерываний (см. выше).
- В дескриптор процесса добавлено поле udata, позволяющее сделать аналог UTCB в L4.
- Переработан код планировщика.
- Переработан код диспетчера системных вызовов.
- Переработан код «циклических» системных вызовов с целью снизить опасность DoS, и количество переключений контекста, подробности.
- Переработан низкоуровневый код.
В дальнейшем планируется развивать BuguRTOS путем добавления портов на новые архитектуры, новых API, исправления возможных ошибок в коде ядра.
>>> Подробности