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 |
Latest release | 2021.01 [1] / 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 by | FireKernel |
Official website | riot-os |
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).
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.
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.
RIOT source code is available on GitHub, and developed by an international community of open source developers.
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).
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 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 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 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 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 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.