Open Source Operating Systems for IOT

Internet of Things (IOT) is a network of electronic physical devices, that are embedded with software and sensors, that has network connectivity. These devices can connect to the Internet and collect data, or exchange information with each other. A few of these physical devices or 'things' are cellphones, wearable devices, washing machines, refrigerators, headphones, and so on. To understand IOT better, consider the following example.

Your alarm clock can wake you up in the morning, then sync with your coffee maker to let it know that you have woken up. The coffee maker will then start brewing coffee. By the time you are ready, your coffee will be ready too.

Following are five of the best open source operating systems for Internet of Things.

1. Contiki

Contiki is an open source IOT operating system that is ideal for memory-constrained systems. It particularly focuses on low-power wireless IOT devices like alarm systems, street lighting systems, radiation monitoring systems, sound monitoring systems for smart cities, and so on. Most of the Contiki run devices are severely constrained in terms of power, bandwidth, and processing power as well.

Contiki is designed to have memory in kilobytes, power in milliwatts, processing speed in megahertz, and bandwidth in kilobits / second. Contiki needs only 10 kilobytes of RAM (Random Access Memory) and 30 kilobytes of ROM (Read Only Memory) to function properly on a non-GUI (Graphical User Interface) system. A full GUI system needs about 30 kilobytes of RAM. A complete version of Contiki has all the following features.

  • TCP/IP networking, including Internet Protocol v6
  • Multitasking kernel
  • Pre-emptive multithreading
  • Screensaver
  • Personal web server
  • Basic telnet client
  • An Internet browser
  • Networked remote display using VNC (Virtual Network Computing)
  • GUI and Windowing system
  • Protothreads

2. FreeRTOS

FreeRTOS is a very popular real-time operating system for IOT devices. The operating system is open-source, however, it permits a user's proprietary code to remain closed. This facilitates the use of this operating system in proprietary applications. Designed to be simple and small, FreeRTOS's kernel consists of only 3 or 4 C-language files.

The C-language helps the code to be readable, easily portable, and maintainable. The features of FreeRTOS include software timers, multiple threads or tasks, semaphores, and mutexes. For low-power application, a tick-less mode (a process in which timer interrupts are delivered only as required) is available. Thread priorities are supported as well. It has a four-schemed memory allocation also.


RIOT is a microkernel-based operating system for IOT. The source model is open-source. It is known as the friendly OS for IOT. RIOT is developer friendly and resource friendly. Its key features include real-time capabilities, high energy efficiency, communication stacks for both wired and wireless networks, low memory footprint, support for C++ and C language, and support for low-power hardware. RIOT runs on 32-bit, 16-bit, and 8-bit hardware.

It can be run as a Linux or MacOS process with the help of a native port. The operating system provides multiple network stacks, including Internet Protocol V6. Developed by an international community of open-source developers, RIOT is available on GitHUB, a web-based Git (a version control system for software development) repository hosting service.

4. Tizen

Tizen is an open-source operating system for IOT, based on the Linux Kernel. The operating system targets a wide range of IOT devices like tablets, smartphones, smart TVs, smart cameras, smart home appliances, smartwatches, printers, and so on. Tizen OS is a project within Linux Foundation. The project is governed by TSG (Technical Steering Group) composed of Intel, Samsung, and other major mobile industry giants. The first consumer device based on Tizen was Samsung's NX300M smart camera.

Tizen is developed using HTML5, C and C++  language. Tizen provides app development tools based on jQuery and jQuery Mobile, two  JavaScript libraries. Since Tizen 2.0, an application framework based on C++ is also available. Tizen 2.0 alpha, also known as Magnolia, offers enhanced web-based framework with a lot of features, including better security for web apps. The SDK (Software Development Kit) platform featured allows developers to use HTML5 to develop apps that run on supported devices.

Tiny OS

5. TinyOS

TinyOS is a very popular open-source operating system for IOT. It is designed specifically for low-power wireless devices. It is an embedded OS written using nesC, a dialect of the C programming language. The operating system programs are built out of CBD (Component Based Development), some of which present hardware abstractions. Interfaces are used to connect the components with each other. TinyOS provides components and interfaces for packet communication, sensing, routing, storage and actuation.

TinyOS has only one stack. It is completely non-blocking, thus enabling it to maintain high concurrency with the only stack. However, it forces the developers to write complex codes by combining many event handlers. To support complex and larger computations, TinyOS posts tasks that can be run later. Tasks are non-preemptive and they run in FIFO (First In First Out) order. To run CPU-heavy apps, TinyOS uses a thread library called TOSThreads.

You can rent a device that runs any of these open-source operating systems, try it out first, and then download, and install it.

Tuesday, February 9, 2016