RIOT (operating system)

Last updated
RIOT
Logo-RIOT.png
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 stateCurrent
Source model Open source
Initial release23 October 2009;12 years ago (2009-10-23)
Latest release 2021.01 [1] / 4 February 2021;14 months ago (4 February 2021)
Repository
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 byFireKernel
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).

Contents

Background

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.

Technical aspects

RIOT is based on a microkernel architecture. [3] 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, [4] also by an experimental application programming interface (API). [5] It has full multithreading and real-time abilities. [6] Secure Sockets Layer (SSL) and successor Transport Layer Security (TLS) are supported by popular libraries such as wolfSSL. [7]

RIOT runs on processors of 8 bits (such as AVR Atmega), 16 bits (such as TI MSP430), and 32 bits (such as ARM Cortex). [8] 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, [9] including IPv6, 6LoWPAN, or content centric networking and standard protocols such as RPL, [10] User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and CoAP.

Source code

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

See also

Related Research Articles

In computing, Internet Protocol Security (IPsec) is a secure network protocol suite that authenticates and encrypts the packets of data to provide secure encrypted communication between two computers over an Internet Protocol network. It is used in virtual private networks (VPNs).

Wget

GNU Wget is a computer program that retrieves content from web servers. It is part of the GNU Project. Its name derives from "World Wide Web" and "get." It supports downloading via HTTP, HTTPS, and FTP.

Contiki Real-time operating system

Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things devices. Extant uses for Contiki include systems for street lighting, sound monitoring for smart cities, radiation monitoring, and alarms. It is open-source software released under the BSD-3-Clause license.

OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications.

Nucleus RTOS is a real-time operating system (RTOS) produced by the Embedded Software Division of Mentor Graphics, a Siemens Business, supporting 32- and 64-bit embedded system platforms. The operating system (OS) is designed for real-time embedded systems for medical, industrial, consumer, aerospace, and Internet of things (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as power management, process model, 64-bit support, safety certification, and support for heterogeneous computing multi-core system on a chip (SOCs) processors.

Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS protocol datagram preserves the semantics of the underlying transport—the application does not suffer from the delays associated with stream protocols, but because it uses UDP or SCTP, the application has to deal with packet reordering, loss of datagram and data larger than the size of a datagram network packet. Because DTLS uses UDP or SCTP rather than TCP, it avoids the "TCP meltdown problem", when being used to create a VPN tunnel.

Mercurial Distributed revision-control tool for software developers

Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux.

6LoWPAN is an acronym of IPv6 over Low-Power Wireless Personal Area Networks. 6LoWPAN is the name of a concluded working group in the Internet area of the IETF.

BeRTOS is a real-time operating system designed for embedded systems.

In cryptography, Curve25519 is an elliptic curve offering 128 bits of security and designed for use with the elliptic curve Diffie–Hellman (ECDH) key agreement scheme. It is one of the fastest ECC curves and is not covered by any known patents. The reference implementation is public domain software.

The Internet Protocol for Smart Objects (IPSO) Alliance was an international technical standards organization promoting the Internet Protocol (IP) for what it calls "smart object" communications. The IPSO Alliance was a non-profit organization founded in 2008 with members from technology, communications and energy companies. The Alliance advocated for IP networked devices in energy, consumer, healthcare, and industrial uses. On 27 March 2018, the IPSO Alliance merged with the Open Mobile Alliance (OMA) to form OMA SpecWorks.

The Transport Layer Security (TLS) protocol provides the ability to secure communications across networks. This comparison of TLS implementations compares several of the most notable libraries. There are several TLS implementations which are free software and open source.

T-Kernel

T-Kernel is an open source real-time operating system (RTOS) designed for 32-bit microcontrollers. It is standardized by the T-Engine Forum, which distributes it under a T-License agreement. There is also a corresponding Micro T-Kernel (μT-Kernel) implementation designed for embedded systems with 16-bit or 8-bit microcontrollers.

OpenConnect is an open-source software application for connecting to virtual private networks (VPN), which implement secure point-to-point connections.

Packet Sender

Packet Sender is an open source utility to allow sending and receiving TCP and UDP packets. It also supports TCP connections using SSL, intense traffic generation, HTTP(S) GET/POST requests, and panel generation. It is available for Windows, Mac, and Linux. It is licensed GNU General Public License v2 and is free software. Packet Sender's web site says "It's designed to be very easy to use while still providing enough features for power users to do what they need.".

OpenWSN

OpenWSN is a project created at the University of California Berkeley and extended at the INRIA and at the Open University of Catalonia (UOC) which aims to build an open standard-based and open source implementation of a complete constrained network protocol stack for wireless sensor networks and Internet of Things. The root of OpenWSN is a deterministic MAC layer implementing the IEEE 802.15.4e TSCH based on the concept of Time Slotted Channel Hopping (TSCH). Above the MAC layer, the Low Power Lossy Network stack is based on IETF standards including the IETF 6TiSCH management and adaptation layer. The stack is complemented by an implementation of 6LoWPAN, RPL in non-storing mode, UDP and CoAP, enabling access to devices running the stack from the native IPv6 through open standards.

Time Slotted Channel Hopping or Time Synchronized Channel Hopping (TSCH) is a channel access method for shared medium networks.

WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs), and was designed with the goals of ease of use, high speed performance, and low attack surface. It aims for better performance and more power than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.

RPL is a routing protocol for wireless networks with low power consumption and generally susceptible to packet loss. It is a proactive protocol based on distance vectors and operates on IEEE 802.15.4, optimized for multi-hop and many-to-one communication, but also supports one-to-one messages.

References

  1. https://github.com/RIOT-OS/RIOT/releases/tag/2021.01; publication date: 4 February 2021.
  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). doi:10.1109/LCN.2009.5355049. S2CID   14806932.
  3. 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.
  4. Lee, Lup Yuen (2020-09-15). "Safer, Simpler Embedded Programs with Rust on RIOT" (PDF). RIOT Summit.
  5. "Rust support for RIOT". GitHub. Retrieved 2020-06-12.
  6. "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.
  7. "wolfSSL Alpha examples by kaleb-himes: Pull Request #6197: RIOT-OS/RIOT". GitHub. Retrieved 2019-02-13.
  8. 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.
  9. 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. Retrieved 2014-05-18.
  10. 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.