В этой статье я хочу представить и вкратце описать члена семейства ОС реального времени — ChibiOS.
Лицензия
В первую очередь про лицензирование. ChibiOS является свободной RTOS и имеет несколько вариантов лицензирования — GPL 3.0, GPL 3.0 c некоторыми исключениями при линковке и коммерческую лицензию.
Код драйверов в большинстве случаев идет под лицензией Apache-2.0.
Со всеми вариантами лицензирования можно ознакомиться на сайте проекта. Представленные варианты должны полностью удовлетворить любителей, а также компании, которые не хотят платить за использование данной операционной системы.
Структура
Проект логически разделен на несколько подсистем:
- HAL прослойка с реализацией драйверов под различные устройства,
- базовые функции ядра под определенную архитектуру(обслуживание прерываний, переключение контекста и т.д.),
- код самого ядра операционной системы.
В приложение ко всему есть несколько надстроек над этим всем делом.
Сама ChibiOS реализована на C и ассемблере но есть также обертки для C++.
Ядро
ChibiOS, как и любая другая уважающая себя RTOS имеет планировщик задач с поддержкой вытеснения и на данный момент имеет два варианта функционирования:
- кооперативное распределение времени между задачами с одним приоритетом
- Round-Robin планирование задач с одинаковым приоритетом с указанием кванта времени на задачу
В данным момент опции планировщика задаются глобально во время компиляции.
Для переключения контекста, планировщиком ядра используется системный счетчик который также используется для виртуальных таймеров.
Естественно, любое прерывание может привести к переключению контекста если в этом есть необходимость.
Read more: Habrahabr.ru
QR: