RIOT (operating system)

Real-time operating system

Operating system

RIOT

RIOT – The friendly OS for the IoT

Developer| Free University of Berlin
French Institute for Research in Computer Science and Automation
Hamburg University of Applied Sciences
OS family| POSIX
Working state| Current
Source model| Open source
Initial release| 23 October 2009; 15 years ago (2009-10-23)
Latest release| 2024.10[1] / 29 November 2024; 2 months ago (2024-11-29)
Repository|

* github.com/RIOT-OS/RIOT

Marketing target| Embedded systems
Available in| English
Platforms| TI MSP430, ARM7, ARM Cortex-M0-M0+-M3-M4, Atmel AVR, MIPS32r2, RISC-V
Kernel type| Microkernel real-time
License| LGPLv2
Preceded by| FireKernel
Official website| riot-os.org

RIOT is a small operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of things (IoT) devices. It is open-source software, released under the GNU Lesser General Public License (LGPL).

## Background

[edit]

It was initially developed by Free University of Berlin (FU Berlin), French Institute for Research in Computer Science and Automation (INRIA) and the Hamburg University of Applied Sciences (HAW Hamburg). RIOT's kernel is mostly inherited from FireKernel,[2] which was originally developed for sensor networks. In 2015, one of the co-developers, Matthias Wählisch was awarded the Young Scientist Award of the Forum for Excellent Young Scientists for the contributions of his team to the open source operating system RIOT.[3] In 2016, the ED STIC Doctoral Prize 2017 of the University of Paris-Saclay was awarded to another co-founder, Oliver Hahm for his contribution to the project. [4]

## Technical aspects

[edit]

RIOT is based on a microkernel architecture.[5] In contrast to other operating systems with similarly low memory use (such as TinyOS or Contiki), RIOT allows application software programming with the programming languages C and C++, and Rust,[6] also by an experimental application programming interface (API).[7] It has full multithreading and real-time abilities.[8] Secure Sockets Layer (SSL) and successor Transport Layer Security (TLS) are supported by popular libraries such as wolfSSL.[9]

RIOT runs on processors of 8 bits (such as AVR Atmega), 16 bits (such as TI MSP430), and 32 bits (such as ARM Cortex).[10] A native port also enables RIOT to run as a Linux or macOS process, enabling use of standard developing and debugging tools such as GNU Compiler Collection (GCC), GNU Debugger, Valgrind, Wireshark, etc. RIOT is partly Portable Operating System Interface (POSIX) compliant.

RIOT provides multiple network stacks,[11] including IPv6, 6LoWPAN, or content centric networking and standard protocols such as RPL,[12] User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and CoAP.

## Source code

[edit]

RIOT source code is available on GitHub, and developed by an international community of open source developers.

## See also

[edit]

* Contiki
* TinyOS
* FreeRTOS
* Nano-RK
* Zephyr
* Comparison of real-time operating systems

## References

[edit]

1. ^ "Release Release-2024.10 · RIOT-OS/RIOT". GitHub.
2. ^ Will, Heiko; Schleiser, Kaspar; Schiller, Jochen (October 2009). "A Real-Time Kernel for Wireless Sensor Networks Employed in Rescue Scenarios". Proceedings of the IEEE 34th Conference on Local Computer Networks (LCN). Institute of Electrical and Electronics Engineers (IEEE). pp. 834–841\. doi:10.1109/LCN.2009.5355049. ISBN 978-1-4244-4488-5. S2CID 14806932.834-841&rft.pub=Institute+of+Electrical+and+Electronics+Engineers+(IEEE)&rft.date=2009-10&rft_id=https://api.semanticscholar.org/CorpusID:14806932#id-name=S2CID&rft_id=info:doi/10.1109/LCN.2009.5355049&rft.isbn=978-1-4244-4488-5&rft.aulast=Will&rft.aufirst=Heiko&rft.au=Schleiser,+Kaspar&rft.au=Schiller,+Jochen&rfr_id=info:sid/en.wikipedia.org:RIOT+(operating+system)" class="Z3988">
3. ^ "Matthias Wählisch receives Young Scientist Award". 24 November 2015. Retrieved 2023-02-06.
4. ^ cokuntz (2020-01-11). "Sciences and Technologies of Information and Communication". Université Paris-Saclay. Retrieved 2024-05-23.
5. ^ Baccelli, Emmanuel; Hahm, Oliver; Günes, Mesut; Wählisch, Matthias; Schmidt, Thomas (15 April 2013). "RIOT OS: Towards an OS for the Internet of Things". Proceedings of the 32nd IEEE International Conference on Computer Communications (INFOCOM) (PDF). Institute of Electrical and Electronics Engineers (IEEE). Retrieved 2014-05-18.
6. ^ Lee, Lup Yuen (2020-09-15). "Safer, Simpler Embedded Programs with Rust on RIOT" (PDF). RIOT Summit.
7. ^ "Rust support for RIOT". GitHub. Retrieved 2020-06-12.
8. ^ "Betriebssysteme für eingebettete Systeme im Internet der Dinge: Freie Fahrt für Experimentierfreudige". iX Developer Magazine, Special Issue on Embedded Software. Heise.de. 2014-02-14. Retrieved 2014-05-18.
9. ^ "wolfSSL Alpha examples by kaleb-himes: Pull Request #6197: RIOT-OS/RIOT". GitHub. Retrieved 2019-02-13.
10. ^ Gauthier, François (2014-04-09). "Avec RIOT, l'Internet des objets tient son OS temps reel open source". L'Embarqué. Retrieved 2014-05-18.
11. ^ Hahm, Oliver; Baccelli, Emmanuel; Petersen, Hauke; Wählisch, Matthias; Schmidt, Thomas C. (15 April 2014). "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). Association for Computing Machinery (ACM). pp. 329–330\. ISBN 9781479931460. Retrieved 2014-05-18.329-330&rft.pub=Association+for+Computing+Machinery+(ACM)&rft.date=2014-04-15&rft.isbn=9781479931460&rft.aulast=Hahm&rft.aufirst=Oliver&rft.au=Baccelli,+Emmanuel&rft.au=Petersen,+Hauke&rft.au=Wählisch,+Matthias&rft.au=Schmidt,+Thomas+C.&rft_id=http://dl.acm.org/citation.cfm?id=2602399&rfr_id=info:sid/en.wikipedia.org:RIOT+(operating+system)" class="Z3988">
12. ^ Brandt, A.; Hui, J.; Kelsey, R.; Levis, P.; Pister, K.; Struik, R.; Vasseur, J. P.; Alexander, R. (2012-03-01). Winter, T.; Thubert, P. (eds.). "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks". IETF Request For Comments 6550. Internet Engineering Task Force (IETF). ISSN 2070-1721. Retrieved 2014-05-18.

## External links

[edit]

* Official website

* v
* t
* e

Wireless sensor network

Operating
systems|

* Contiki
* ERIKA Enterprise
* LiteOS
* NanoQplus
* Nano-RK
* OpenTag
* RIOT
* TinyOS
* OpenWSN

Communications
protocols|

* 6LoWPAN
* IEEE 802.15.4
* ANT
* Bluetooth
* Bluetooth Low Energy (Wibree)
* DASH7
* ISA100.11a
* MiWi
* Near-field communication
* OCARI
* One-Net
* OSIAN
* Sidewalk
* Thread
* TIBUMAC
* TSMP
* WirelessHART
* Zigbee
* Z-Wave

Programming
languages|

* C
* LabVIEW

Hardware|

* Arduino
* Iris Mote
* Sun SPOT
* XBee

Software|

* NS-2
* LinuxMCE
* OPNET
* TinyDB-TOSSIM

Applications|

* Key distribution
* Location estimation
* Sensor network query processor
* Sensor web
* Wireless powerline sensor
* Telemetry

Routing
protocols|

* Ad hoc On-Demand Distance Vector Routing (AODV)
* Dynamic Source Routing (DSR)

Conferences,
journals|

* European Conference on Wireless Sensor Networks (EWSN)
* International Conference on Information Processing in Sensor Networks (IPSN)
* Conference on Embedded Networked Sensor Systems (SenSys)

* v
* t
* e

Real-time operating systems (RTOS)

Operating
systems|

| POSIX support|

| Unix-like|

* DNIX
* Junos OS
* LynxOS
* Multi-Environment Real-Time^ (MERT – Unix-RT)
* OS2000
* QNX^
* Real-Time Linux°
* RTLinux°
* UNOS

|

LiteOS|

* LiteOS°

Partial|

* ChorusOS^
* Integrity^
* Nucleus RTOS^
* NuttX^°
* Operating System Embedded^ (OSE)
* PX5 RTOS^
* RIOT^°

TRON support|

* ITRON project
* T-Kernel
* Micro T-Kernel
* T-Engine Forum (organization)
* T-License

Partial|

* eCos°
* RTEMS°

Capability-based|

* EROS^°
* seL4^°

Java virtual machine|

* Chorus/Jazz^ (JavaOS \+ ChorusOS^)

DOS|

* Multiuser DOS
* Concurrent DOS
* FlexOS
* REAL/32

L4 kernel|

* L4Linux^°
* PikeOS^
* REX OS^
* Wombat^°

Psion|

* EKA2^° kernel → Symbian OS^°

Microsoft|

* ThreadX^
* Windows Embedded Compact

IBM|

* 4680 OS
* 4690 OS
* Transaction Processing Facility (TPF)

Texas Instruments|

* DSOS
* TI-RTOS Kernel^°

DEC PDP-11 VAX|

* RSX-11
* RT-11
* VAXELN

Low resource|

* ChibiOS/RT^°
* Contiki°
* ERIKA Enterprise°
* FunkOS°
* Mynewt°
* Nano-RK°
* OpenComRTOS^
* PX5 RTOS^
* RT-Thread° Nano
* RIOT°
* ThreadX^
* Zephyr^°

* BeRTOS^°
* DioneOS
* embOS
* FreeRTOS^°
* µC/OS^°
* µ-velOSity^
* MQX^
* OS-9 (Microware)
* Phantom OS^°
* pSOS
* RMX
* RT-Thread° Standard
* ScreenOS
* Sintran III
* THEOS
* Thoth^ → Harmony^
* VRTX^
* VxWorks
* UniProton

Frameworks, kits|

* Robot Operating System° 2
* RTAI°
* TI-RTOS^°
* Xenomai°

Developers|

* Gordon Bell
* David Cheriton
* Dave Cutler
* Dan Dodge
* Adam Dunkels
* Ken Sakamura

* Italics = discontinued
* ^ = Microkernel
* ° = Open-source software
Comparison Category

* v
* t
* e

Microkernels-nanokernels

Kernels|

| L4 family|

* Eumel → L3 → L4°
* OKL4°

|

Macintosh hosted|

* Mac OS nanokernel
* NuKernel

Psion|

* EKA1 → EKA2^°

Amiga-type|

* Exec
* ExecSG
* Quark
* WarpOS

* ADEOS°
* EROS^°
* K42°
* Little Kernel
* Mach°
* GNU Mach°
* MicroEmpix
* µ-velOSity^
* nucleus
* Off++ → Plan B
* Opus
* PowerUP
* RTLinux°
* TI-RTOS kernel^°
* Vanguard

Operating
systems|

| POSIX support|

| Unix-like|

* ARX
* GNU Hurd°
* Lites
* MeikOS
* Minix°

* Minix-vmd°
* Minix 3°

* MkLinux°
* Multi-Environment Real-Time^ (MERT – Unix-RT)
* OS2000
* QNX^
* Redox°
* Spring
* Tinix
* UNICOS
* VSTa

|

Partial|

* ChorusOS^
* Integrity^
* Nucleus RTOS^
* NuttX^°
* OSE^
* RIOT^°

Capability-based|

* GNOSIS → KeyKOS → EROS → CapROS
* Hydra
* seL4^°
* Midori
* NLTSS
* HarmonyOS NEXT (OpenHarmony, Oniro OS) → HarmonyOS

L4 kernel|

* L4Linux^°
* PikeOS^
* REX OS^
* Wombat^°

Java virtual machine|

* JavaOS (Chorus/Jazz^ integrates ChorusOS^)
* JX°

Macintosh hosted|

| Unix-like|

* MachTen
* MacMach

|

* Copland
* Classic Mac OS (PowerPC kernel)

Psion|

* EPOC → Symbian OS^°

Amiga-type|

* AmigaOS
* AROS°
* AspireOS°
* Broadway°
* Icaros Desktop°
* MorphOS

Microsoft|

* Singularity
* ThreadX^
* Verve

AIM alliance|

* Pink → Taligent OS → Workplace OS

* Amoeba°
* BeRTOS^°
* ChibiOS/RT^°
* FreeRTOS^°
* HelenOS°
* µC/OS^°
* MQX^
* OpenComRTOS^
* Phantom OS^°
* RC 4000
* SharpOS°
* SPIN°
* Thoth^ → Harmony^ → V
* VRTX^
* Zephyr^°

Frameworks, kits|

* Cosmos°
* Genode°
* TI-RTOS^°

Developers|

* Gordon Bell
* Thomas Bushnell
* David Cheriton
* Dan Dodge
* Per Brinch Hansen
* Gernot Heiser
* Jochen Liedtke
* James G. Mitchell
* Ike Nassi
* Richard Rashid
* Andrew S. Tanenbaum
* Avie Tevanian
* William Wulf

* Italics = discontinued
* ^ = Real-time
* ° = Open-source software
Category: Microkernel-based operating systems Category: Microkernels

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template