OS, Comparisons

9 IoT Operating Systems To Use in 2021 [List & Comparison]

IoT OSs are embedded operating systems that are designed to perform under the constraints of limited memory and processing power of small IoT devices. Many of these OSs are open source and fully supported by development communities and online tutorials.

The operating systems that control IoT devices aren't nearly the same as typical desktop or server OSs like Windows and Mac OS...

They are specifically designed to work reliably based on IoT use case requirements: cellular connectivity, mobility, interoperability, and more.

» FREE TRIAL: Launch Your IoT Application To Market in Less Than 30 Days with Ubidots Drag-n-Drop IoT Dashboards

At the heart of all IoT devices are operating systems that make all of these things possible: Contiki, FreeRTOS, even "Embedded" Linux; a version of Linux that can be embedded directly on tiny chips.

Unfortunately though, there's no real standard as to which OS to use in IoT.

So we've made this list to clarify things.

What Is an IoT Operating System?

Operating systems that are written for the Internet of Things are specialized OSs designed to perform within the strict constraints of small IoT devices.

These are embedded operating systems that enable IoT devices to communicate with cloud services and other IoT devices over a global network and can do so within the tight parameters of limited amounts of memory and processing power.

The beauty of these operating systems lies in the opportunities they provide with IoT devices, such as remote data management, cellular connectivity, and more.

Embedded operating systems enable IoT devices to communicate with cloud services and other IoT devices over a global network

The IoT operating systems we discuss in this article have been successfully used in controlling ATMs, traffic lights, elevators, and more.

And as they continue to evolve, IoT developers can get their hands on more powerful capabilities for their networks.

Why Use a Separate OS for Internet of Things Devices?

The physical size of IoT devices is becoming increasingly smaller; some are even required to be wearable. These physical parameters put significant constraints on the hardware—and hence—the software.

esp8266 example for embedded os
Embedded IoT electronics can get really tiny and OSs follow suit

An IoT OS is considered successful when it can be embedded within an internet-connected device, run software, and process and store data on the host IoT device without breaking too much of a sweat.

Sounds like a lot to consider?

That's because it is!

Developing an IoT operating system is somewhat of a software engineering marvel as programmers deal with extreme challenges.

Developing an IoT operating system is somewhat of a software engineering marvel as programmers deal with extreme challenges.

Today's operating systems allow portability, connectivity, and more. All features that you've come to expect from most cloud-based services are being slowly introduced to all the "things" as well. With a few caveats, of course.

An Overview of How IoT Operating Systems Work

Not unlike a standard OS that you would find on a desktop or laptop computer, the IoT operating system is the brain and central system of the device.

ubidots devices iot operating systems that can be connected
Ubidots can host 100s of embedded electronics in one dashboard

The role of embedded operating systems is to manage all the hardware and software on the device itself, and to allocate all the device’s resources that it needs for functionality, such as processing, memory, and storage. It is the IoT OS that also enables a device to communicate with cloud computing services.

Once the data reaches the remote server, the software on the other end processes it based on the use case and produces whatever it was developed to do.

Based on the output of this processing, the remote server may send a signal back to the IoT device to request additional data.

The 9 Best IoT Operating Systems in 2021

We make the distinction once again that these embedded OSs are designed to perform within the size constraints of smaller IoT devices, and with connectivity in mind. Some of these OSs are remarkably powerful, each having benefits and disadvantages that are unique.

Here are the top 9 IoT OSs worth your consideration:

IoT Operating System #1: Contiki

Making its debut in 2003, Contiki is an operating system often compared to Microsoft Windows and Linux, but it was designed with a special focus on the nuances of networked, memory-constrained systems (i.e. most IoT devices).

Contiki is an open-source OS most renowned for its ability to easily connect very small, economical, and low-powered microcontrollers to the Internet.

The operating system has a reputation of being exceptionally useful in building complex wireless systems, as well as being highly memory-efficient.

It also suits both business and non-business use cases.

IoT Operating System #2: FreeRTOS

Also referred to as “Amazon FreeRTOS,” this operating system was invented by Amazon and made an open-source, microcontroller-based operating system that has rapidly become a benchmark IoT OS within the last few years.

FreeRTOS uses Amazon Web Services (AWS IoT Core) to run IoT applications and has a particularly small memory footprint (only 6-15kb) making it a more adaptable small powered microcontroller.

Developers can rest easy knowing that Amazon invested heavily in the development of IoT data security as well.

IoT Operating System #3: Mbed OS

Mbed OS is a free, open-source operating system widely recognized for its usage of an ARM processor and for offering a wide array of connectivity options that developers can play around with, including WiFi and Bluetooth.

Mbed OS' multilayer security protocols are what makes it such an appealing system for developers looking to get started with IoT projects.

One benefit that developers enjoy with Mbed OS is that it keeps their code clean and portable, as well as the ability to make a prototype of IoT applications with the use of ARM cortex M-based devices.

At present, more than 150 boards are supported.

IoT Operating System #4: MicroPython

MicroPython is a very compact, open-source reimplementation of the Python programming language with a focus on microcontrollers.

The language is more useful to beginners than other languages, while still being robust enough for industrial use. Also, standard Python is applicable.

An advantage of MicroPython is that it allows developers to rapidly evolve from learning the basics to implementing real project code.

For advanced developers, MicroPython is extensive, with low-level C/C++ functions so developers can mix expressive high-level MicroPython code with faster lower level code, mixing the best of both worlds into one OS.

IoT Operating System #5: Embedded Linux

Embedded Linux is built for embedded devices, and it uses a slightly-modified version of the Linux kernel. The smaller size and power of Embedded Linux facilitates the integration of all requirements of IoT devices, so you will find that it's useful for navigational devices, tablets, wireless routers, and more.

This is another free, open-source OS that enjoys the support of a large community and many resources that contribute to its development.

The OS takes up a mere 100kb of memory space, making it quick and dynamic, and it also offers an unparalleled level of configuration in the IoT OS scene.

Considered the “Swiss Army Knife” of IoT OSs, Embedded Linux can be installed on nearly any single board computer, including Raspberry Pi boards (Raspbian).

IoT Operating System #6: RIOT

Widely considered to be the Linux of the IoT world, RIOT is another open-source operating system specialized for IoT devices. Newcomers with previous Linux experience will find achieving results with this OS to be quite simple.

RIOT supports full multithreading and SSL/TSL libraries, and facilitates the usage of 8, 16, and 32-bit processors. Lastly, there is a port of this OS that makes it possible to run as a Linux or macOS process.

IoT Operating System #7: TinyOS

TinyOS is a component-based open-source operating system. “nesC” is the core language of TinyOS, which is a dialect of the C programming language.

This operating system enjoys large support among the development community because of how it optimizes the memory of IoT devices and how the OS tends not to overload IoT devices. One key advantage is transferability:

A TinyOS program can be reusable on other devices if the code need not be changed because of the similarity of the devices.

IoT Operating System: #8: Windows 10 IoT

Windows 10 IoT is simply a component of the Microsoft Windows 10 operating system, but it is designed with IoT devices in mind.

An interesting fact is that this OS is divided into two parts:

  1. One is Windows 10 IoT Core which is designed to support small embedded devices (covers 80%+ of use cases), and;
  2. The other is Windows 10 IoT Enterprise designed to support heavy-duty industrial applications with high-grade reliability in mind.

Windows 10 IoT Core offers a familiar interface, has better user control than other OSs, and is accepted among the IoT community as being a powerful IoT operating system.

Win 10 IoT is especially useful with the Raspberry PI board series and with the Grove Kit for Win10 IoT Core & Azure platform.

IoT Operating System: #9: OpenWrt

OpenWrt is another open-source option based on Linux and has a strong presence in routers. At present, more than 200 board variations ship with OpenWRT.

The OS has a reputation for preventing security breaches and enjoys the support of a committed base of developers constantly improving it.

OpenWrt is also a highly-customizable OS since it contains the full features of Linux. While OpenWrt has a strong presence in routing equipment, it has slowly permeated other IoT devices with an excellent record of success.


Looking at each OS individually is a lot of work if you're planning to choose one for your IoT project, so we also have a handy comparison table as a quick recap:

IoT Operating System Features Use cases
Contiki NG Open-source, free Networked memory-constrained systems
FreeRTOS Open-source, free, uses AWS IoT Core Devices with tiny amounts of memory
Mbed OS ARM-based, high-grade security For portable code
MicroPython Uses standard Python, easy to learn, C++ Rapid deployment
Embedded Linux Linux kernel, free Versatile - can be used for various use cases
RIOT Open-source, full multithreading Can be run as MacOS process
TinyOS C language, open-source Portability across similar devices
Windows 10 IoT Proprietary, high-grade security Ideal for heavy-duty industrial use cases
OpenWrt Open-source, Linux-based Primarily used in routers

Making the Best of Your IoT Operating System

Arther C. Clarke, author of “Hazards of Prophecy: The Failure of Imagination” (an essay contained in his "Profiles of the Future" book) was quoted:

"Any sufficiently advanced technology is indistinguishable from magic."

The IoT devices we have at our fingertips, and the OSs that operate them, have created advancements in technology that were considered “science fiction” only 20 years ago.

As you are making your selection of which OS to use, we can share a formula for maximizing the benefits of these IoT operating systems...

Make your IoT OS selection based on

  1. Compatibility
  2. Simplicity
  3. Flexibility
  4. Reliability
  5. Consistency

Developers that apply this logic are likely to see these 5 concepts manifest within the solution that they eventually go on to design.

To put it another way, IoT devices that are simple to use, compatible with the market, and consistent in their operation tend to do quite well in the marketplace.

Reliability and flexibility go on to allow for prolonged use. If you're interested in bringing all of these 5 characteristics together in one platform to monitor all of your IoT devices, start your own free trial of Ubidots below.

Originally published May 26 2021

» FREE TRIAL: Launch Your IoT Application To Market in Less Than 30 Days with Ubidots Drag-n-Drop IoT Dashboards

Frequently Asked Questions

What is an IoT operating system?

An IoT operating system is a hardware-level software designed to process the activity of smaller IoT devices with restrictions on memory, size, and processing power, enabling them to communicate with other devices and systems such as cloud platforms and services.

Do IoT devices have an operating system?

Yes. IoT operating systems are embedded within IoT devices and connect to a greater network of devices. An IoT operating system performs functionality similar to an OS on a standard computer, but is able to work within the size constraints of smaller IoT devices.

Which IoT device requires an operating system?

Any device that requires the inherent functionality of “running code” that makes the device’s hardware accessible to the device’s software, and the ability of that device to communicate information about it to a cloud service (and/or other IoT devices).

What's the best IoT operating system?

We're confident in the 9 operating systems discussed in the blog post. The key factors to consider when determining which is best is compatibility, simplicity, and consistency. There is no single best IoT operating system to use; you have to consider your project requirements.

Author image

About Agustin Pelaez

Agustín has more than 10 years of hands-on experience in IoT Projects, including building a global IoT Startup (Ubidots) with over a thousand clients worldwide.