Edit This Guide Record
Guides Technology Operating system for memory constrained devices in IoT

Operating system for memory constrained devices in IoT

Published on 05/17/2017 | Technology

276 0

Narsimhmaswamy Badugu

Software Engineer. HCL Technologies

IoT GUIDE

The Internet of Things (IoT) is going to change the way people live, work and entertain, as well as how governments and businesses interact with the world.

According to Gartner, Inc (a technology research and advisory corporation), there will be nearly 20.8 billion devices on the Internet of Things. The devices in IoT are basically, have less footprint, battery operated and these devices, in general will have limited functionalities but now, due to the IoT revolution the functionalities of those are getting increase.

So device/controller must be more intelligent in monitoring several inputs, updating events to gateway/devices and as well as receiving commands from the Gateway/devices.

Now let’s have a look at the controller and it’s functionalities in a Smart city project.

A controller here need to monitor all the sensors, must check the commands that it will receive from gateway and any other device in the Wireless Sensor Actuator Network (WSAN) and also need to send its status to the Gateway, other devices in the WSAN.

For sure, microcontroller alone can’t do all these tasks within less time and more efficiently. So ultimately requires an operating system to do all these tasks. 

An Operating system for Embedded system has the following responsibilities:

  • Task management and scheduling
  • Interrupt servicing
  • Inter process communication
  • Memory management.

Factors to consider when choosing an operating system:

Following are the prime factors when choosing an operating system:

  • Footprint
  • Compatibility
  • Priority based preemptive scheduler
  • Low interrupt latency
  • Multi-tasking
  • Long-term support.

Embedded Operating Systems:

Currently there are more than 20 embedded operating systems are available for 32-bit microcontrollers which are mostly widely used in WASN nodes in IoT.

Following are the list of most widely used and recommended embedded OS’s:

FreeRTOS:

FreeRTOS is a popular real-time operating system kernel for embedded devices that has been ported to 35 microcontrollers.

FreeRTOS is designed to be small and simple. The kernel itself consists of only three C files. To make the code readable, easy to port, and maintainable, it is written mostly in C, but there are a few assembly functions included where needed (mostly in architecture-specific scheduler routines).

RIOT:

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

RIOT is based on a microkernel architecture. In contrast to the other operating systems (such as TinyOS or Contiki) with similarly low memory use, RIOT allows application programming with the programming languages such as C and C++, and provides full multi threading and real-time abilities. 

Google’s Brillo:

Google’s OS for IoT MPU devices. Brillo is an operating system based on Andriod, designed especially for Internet of Things (IoT).

Brillo is simpler, smaller and IoT focused, allows application programming with the programming languages such as C and C++.

Yocto project:

The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. It was founded in 2010 as a collaboration among many hardware manufacturers, open-source operating systems vendors, and electronics companies to bring some order to the chaos of embedded Linux development.

TinyOS:

TinyOS is an embedded, component-based operating system and platform for low-power wireless devices, such as those used in Wireless Sensor Actuator Network (WSAN). It is written in the programming language nesC, a dialect of C programming language optimized for the memory limits of sensor networks.

Contiki:

Contiki is an operating system for networked, memory-constrained systems with a focus on low-power Internet of Things devices. It is open-source software released under a BSD license.

Contiki provides multitasking and a built-in Internet Protocol suite (TCP/IP stack), yet needs only about 10 kilo bytes of RAM and 30 kilo bytes of ROM.

Windows Embedded:

Windows IoT, formerly Windows Embedded, is a family of operating systems from Microsoft designed for use in embedded systems especially for small footprint, real time devices in IoT.

mbedOS:

ARM mbed OS is an open source embedded operating system designed specifically for the “things” in Internet of Things (IoT).

It includes all the features you need to develop a connected product based on an ARM Cortex-M microcontroller, including security, connectivity, an RTOS, and drivers for sensors and I/O devices.

Zephyr project:

The Zephyr kernel is a small-footprint kernel designed for use on resource-constrained systems: from simple embedded environmental sensors and LED wearables to sophisticated smart watches and IoT wireless gateways.

It is designed to be supported by multiple architectures, including ARM Cortex-M, Intel x86, and ARC.

WindRiver Rocket:

WindRiver Rocket is a free, best-in-class, scalable real-time operating system for 32-bit microcontrollers (MCUs), ideal for building sensors, wearables, industrial actuators, wireless gateways, or other resource-constrained smart, connected devices.

Conclusion:

According to the IoT Developer Survey 2016 which was conducted Eclipse IoT Working Group, IEEE IoT and AGILE IoT, developers all over the world expressed their views the selection of IoT operating systems.

Which operating system(s) do you use for your IoT devices?

The selection of an embedded OS is a complex process and operating system design of embedded system is greatly impacted by both the application requirement and hardware limitation.

This article was originally featured on LinkedIn.

test test