RIOT (операционная система)

RIOT — небольшая операционная система для сетевых устройств с ограниченным объёмом памяти, ориентированная на энергетически эффективные беспроводные решения для Интернета вещей (IoT). Распространяется как свободное программное обеспечение под лицензией LGPL.

Общие сведения
RIOT
Изображение логотипа
Разработчик Свободный университет Берлина
Национальный институт исследований в области информатики и автоматизации
Гамбургский университет прикладных наук
Семейство ОС POSIX
Исходный код свободный
Первый выпуск 23 октября 2009
Последняя версия
Поддерживаемые языки английский
Поддерживаемые платформы TI MSP430, ARM7, ARM Cortex-M0/М0+/М3/М4, Atmel AVR, MIPS32r2, RISC-V
Тип ядра микроядро, реального времени
Лицензия LGPLv2
Состояние активное
Репозиторий исходного кода github.com/RIOT-OS/RIOT
Предыдущая FireKernel
Веб-сайт riot-os.org

История

Первоначально разработка RIOT велась Свободным университетом Берлина (FU Berlin), Национальным институтом исследований в области информатики и автоматизации (INRIA) и Гамбургским университетом прикладных наук (HAW Hamburg). Ядро системы в значительной степени унаследовано от FireKernel[2], которое изначально создавалось для сенсорных сетей. В 2015 году один из соразработчиков, Маттиас Вэльшиш, был удостоен премии Young Scientist Award форума для выдающихся молодых учёных за вклад его команды в развитие свободной ОС RIOT[3]. В 2016 году приз ED STIC Doctoral Prize 2017 парижского Университета Париж-Сакле получил другой сооснователь проекта, Оливер Хам, за вклад в RIOT[4].

Архитектура и компоненты

RIOT базируется на микроядерной архитектуре[5]. В отличие от других ОС с сопоставимыми низкими требованиями к памяти (например, TinyOS или Contiki), RIOT поддерживает программирование прикладного ПО на C, C++ и Rust[6], а также с помощью экспериментального интерфейса программирования приложений (API)[7]. В системе реализованы полноценная многопоточность и возможности работы в режиме реального времени[8]. Для работы с криптографическими протоколами SSL и TLS поддерживаются популярные сторонние библиотеки, такие как wolfSSL[9].

RIOT может работать на процессорах с 8 битами (например, AVR Atmega), 16 битами (TI MSP430) и 32 битами (ARM Cortex)[10]. Также возможен нативный порт, позволяющий запускать RIOT как процесс на Linux или macOS и использовать стандартные средства разработки и отладки вроде GCC, GNU Debugger, Valgrind, Wireshark и др. Частично соблюдается совместимость с POSIX.

Интерфейс и программное обеспечение

Операционная система поддерживает множество сетевых стеков[11], включая IPv6, 6LoWPAN, content centric networking, а также стандартные протоколы, такие как RPL[12], UDP, TCP и CoAP.

Пакетная база и обновления

RIOT поддерживает разработку и сборку программ на языках C, C++ и Rust, а также интеграцию с рядом сторонних библиотек для расширения функций системы.

Поддержка аппаратных платформ

Поддерживаются следующие аппаратные платформы:

  • TI MSP430
  • ARM7
  • ARM Cortex-M0, M0+, M3, M4
  • Atmel AVR
  • MIPS32r2
  • RISC-V

Возможен запуск RIOT как нативного процесса в средах Linux и macOS.

Выпуски

Выпуски
Версия Дата Ветка/статус Примечания
2024.10 29 ноября 2024 стабильная [13]

Безопасность

Для защиты трафика используются сторонние криптобиблиотеки (например, wolfSSL), обеспечивающие работу с SSL/TLS.

Примечания

  1. https://github.com/RIOT-OS/RIOT/releases/tag/2024.04
  2. Will, Heiko. A Real-Time Kernel for Wireless Sensor Networks Employed in Rescue Scenarios // Proceedings of the IEEE 34th Conference on Local Computer Networks (LCN) : [англ.] / Heiko Will, Kaspar Schleiser, Jochen Schiller. — Institute of Electrical and Electronics Engineers (IEEE), 2009-10. — P. 834–841. — ISBN 978-1-4244-4488-5. — doi:10.1109/LCN.2009.5355049.
  3. Matthias Wählisch receives Young Scientist Award (англ.) (24 ноября 2015). Дата обращения: 6 февраля 2023. Архивировано 25 сентября 2025 года.
  4. cokuntz Sciences and Technologies of Information and Communication (англ.). Université Paris-Saclay (11 января 2020). Дата обращения: 23 мая 2024. Архивировано 5 сентября 2025 года.
  5. Baccelli, Emmanuel. RIOT OS: Towards an OS for the Internet of Things // Proceedings of the 32nd IEEE International Conference on Computer Communications (INFOCOM) : [англ.] / Emmanuel Baccelli, Oliver Hahm, Mesut Günes … [et al.]. — Institute of Electrical and Electronics Engineers (IEEE), 2013-04-15.
  6. Lee, Lup Yuen Safer, Simpler Embedded Programs with Rust on RIOT. RIOT Summit (15 сентября 2020). Архивировано 26 сентября 2025 года.
  7. Rust support for RIOT (англ.). GitHub. Дата обращения: 12 июня 2020. Архивировано 3 декабря 2024 года.
  8. Базовые ОС для встроенных систем в Интернете вещей: свободный выбор для экспериментаторов, iX Developer Magazine, спецвыпуск по встроенному ПО, Heise.de (14 февраля 2014). Архивировано 14 февраля 2014 года. Дата обращения: 18 мая 2014.
  9. wolfSSL Alpha examples by kaleb-himes: Pull Request #6197: RIOT-OS/RIOT (англ.). GitHub. Дата обращения: 13 февраля 2019. Архивировано 4 марта 2025 года.
  10. Gauthier, François Avec RIOT, l'Internet des objets tient son OS temps reel open source (фр.). L'Embarqué (9 апреля 2014). Дата обращения: 18 мая 2014. Архивировано 14 апреля 2014 года.
  11. Hahm, Oliver. Demonstration abstract: Simply RIOT: Teaching and Experimental Research in the Internet of Things // Proceedings of the 13th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN) : [англ.] / Oliver Hahm, Emmanuel Baccelli, Hauke Petersen … [et al.]. — Association for Computing Machinery (ACM), 2014-04-15. — P. 329–330. — ISBN 9781479931460.
  12. RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks (англ.), IETF Request For Comments 6550, Internet Engineering Task Force (IETF) (1 March 2012). Архивировано 2 апреля 2012 года. Дата обращения: 18 мая 2014.
  13. Release Release-2024.10 · RIOT-OS/RIOT. GitHub. Дата обращения: 16 июня 2024.

Ссылки