Zephyr — невелика операційна система реального часу (RTOS) для підключених до мережі, ресурсно-обмежених і вбудованих пристроїв (з особливим акцентом на мікроконтролерах), яка підтримує кілька архітектур і поширюється за ліцензією Apache License 2.0. Zephyr містить ядро, а також усі компоненти й бібліотеки, драйвери пристроїв, стеки протоколів, файлові системи та засоби оновлення мікропрограмного забезпечення, необхідні для розроблення повноцінного прикладного програмного забезпечення.
Історія Zephyr бере свій початок від операційної системи реального часу Virtuoso для цифрових сигнальних процесорів (DSP). У 2001 році компанія Wind River Systems придбала бельгійську компанію Eonic Systems, розробника Virtuoso. У листопаді 2015 року Wind River Systems перейменувала операційну систему на Rocket, зробила її програмним забезпеченням з відкритим кодом і без ліцензійних відрахувань (royalty-free). Порівняно з іншою RTOS компанії Wind River — VxWorks — Rocket вимагала значно менше пам'яті, що робило її особливо придатною для датчиків і вбудованих пристроїв, призначених для виконання однієї функції. Rocket могла працювати лише з 4 КБ пам'яті, тоді як VxWorks потребувала 200 КБ або більше.
У лютому 2016 року Rocket стала спільним проєктом під егідою Linux Foundation під назвою Zephyr. Wind River Systems передала ядро Rocket проєкту Zephyr, але продовжувала постачати Rocket своїм клієнтам, стягуючи плату за хмарні сервіси. У результаті Rocket фактично стала «комерційною версією Zephyr».
Відтоді до перших учасників і прихильників Zephyr належали Intel, NXP Semiconductors, Synopsys, Linaro, Texas Instruments, Nordic Semiconductor, Oticon і Bose.
, Zephyr мала найбільшу кількість розробників і внесків (commits) серед операційних систем реального часу, випереджаючи інші RTOS, зокрема Mbed, RT-Thread, NuttX та RIOT.
Властивості Zephyr має на меті надати всі компоненти, необхідні для розробки ресурсно-обмежених застосунків для вбудованих систем або систем на основі мікроконтролерів. До них належать: невелике ядро; гнучка система конфігурації та збирання, що дає змогу визначати необхідні ресурси й модулі під час компіляції; набір стеків протоколів (IPv4 і IPv6, Constrained Application Protocol (CoAP), LwM2M, MQTT, 802.15.4, Thread, Bluetooth з низьким енергоспоживанням, CAN); інтерфейс віртуальної файлової системи з підтримкою кількох файлових систем для флешпам'яті та іншого енергонезалежного сховища (FatFs, LittleFS, NVS); механізми керування та оновлення мікропрограмного забезпечення пристроїв.
Система конфігурації та збирання Zephyr використовує Kconfig і devicetree як системи конфігурації, успадковані від ядра Linux, але реалізовані мовою програмування Python для забезпечення перенесення на операційні системи, відмінні від Unix. Система збирання RTOS базується на CMake, що дає змогу збирати застосунки Zephyr у Linux, macOS та Microsoft Windows.
Утиліта West Zephyr містить універсальну утиліту під назвою West, яка використовується для керування репозиторіями, завантаження програм до апаратного забезпечення та виконання інших завдань.
Ядро Перші версії ядра Zephyr використовували двоядерну архітектуру, що поєднувала наноядро та мікроядро. У грудні 2016 року, з виходом Zephyr 1.6, її було замінено на монолітне ядро.
Ядро має низку особливостей, які вирізняють його серед інших компактних операційних систем:
єдиний адресний простір; підтримка кількох алгоритмів планування; висока модульність і можливість конфігурації, коли ресурси визначаються під час компіляції; захист пам'яті на основі блоку захисту пам'яті (MPU); підтримка асиметричної багатопроцесорності (AMP, на основі OpenAMP) та симетричної багатопроцесорності (SMP).
Безпека Підтриманням і вдосконаленням безпеки займається окрема група розробників. Крім того, відкритий характер проєкту та його підтримка спільнотою означають, що вихідний код постійно перевіряється розробниками програмного забезпечення з відкритим кодом з усього світу, що суттєво підвищує рівень безпеки.
Див. також Вбудована операційна система
Примітки