Decoding The Top 10 Open Source IoT Operating Systems

Decoding The Top 10 Open Source IoT Operating Systems

Source: Intelligent Things

IoT Think Tank Organized and Published

Please indicate the source when reprinting

—— [Introduction] ——

The Internet of Things, open source, and operating systems are currently hot keywords in the IT industry, and these three terms constitute the open source operating systems for IoT. So, how much do you know about open source operating systems for IoT? Today, we will take you closer to IoT operating systems and introduce 10 classic IoT operating systems.

This article mainly mentions the top 10 open source IoT systems:

1. Android Things

2. Contiki

3. eLinux

4. FreeRTOS

5. mbed OS

6. Raspbian

7. RIOT

8. Ubuntu Core

9. Huawei LiteOS

10. Tizen

Starting with the Internet of Things

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: Wikipedia)

The Internet of Things, abbreviated as IoT, is an extension of the Internet concept, broadly referring to the interconnection of various physical objects. Simply put, it means “connecting everything.” The “things” in IoT can be various devices, such as implants that monitor heart functions, biochips that monitor farm animals, cars with built-in sensors, DNA analysis devices that monitor food environments, and onsite operational devices used for firefighting and search and rescue.

Decoding The Top 10 Open Source IoT Operating Systems

IoT technology includes concepts such as smart industry, smart grid, smart home, smart transportation, and smart cities. It is a broader network with the ultimate goal of achieving interconnection among networks in fields such as power grids, homes, and transportation, while providing security, data analysis, and management.

What is an Operating System?

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: Wikipedia)

An operating system, abbreviated as OS, is a type of system software that sits between computer hardware and applications, managing hardware and software resources and providing related services for computer programs. All computer programs, including applications and firmware, require the support of an operating system.

Generally, operating systems typically have the following functions: resource management, program control, human-computer interaction, virtual memory, user interfaces, and user interface.

Resource Management: Computer system resources can be divided into two main categories: device resources and information resources. Device resources refer to the hardware devices that make up the computer, such as the central processing unit, main memory, disk storage, printers, tape storage, displays, keyboard input devices, and mice. Information resources refer to various data stored within the computer, such as files, program libraries, knowledge bases, system software, and application software.
Program Control: A user writes a program using a programming language to solve a problem and inputs the program along with execution requirements into the computer. The operating system then controls the execution of this user program according to the requirements until it finishes.
Human-Computer Interaction: The human-computer interaction function of the operating system is a key factor in determining the “friendliness” of the computer system. This function mainly relies on input/output external devices and corresponding software. Devices available for human-computer interaction mainly include keyboard displays, mice, and various pattern recognition devices.
Virtual Memory: Virtual memory is a technology for memory management in computer systems. It allows applications to believe they have a contiguous available memory (a continuous complete address space), while in reality, it is often divided into multiple physical memory fragments, with some temporarily stored on external disk storage, exchanging data when needed.
User Interfaces: Includes job-level interfaces and program-level interfaces. Job-level interfaces are set to facilitate users to directly or indirectly control their jobs. They usually include online user interfaces and offline user interfaces. Program-level interfaces are set for user programs to access system resources during execution, usually consisting of a set of system calls.
User Interface: The user interface (UI) is the medium for interaction and information exchange between the system and the user, realizing the conversion between the internal form of information and the form acceptable to humans.

Typical operating systems include windows operating system (Microsoft), Unix and Unix-like operating systems (Linux, Google), and mac operating systems (Apple).

The Windows operating system is a graphical operating system designed based on MS-DOS, which is a closed-source system, meaning the source code is not open.

Unix and Unix-like operating systems, such as FreeBSD, OpenBSD, Solaris, Minix, Linux, QNX, Google’s Android operating system (based on Linux), and Ubuntu, are mostly open-source systems with open source code.

Additionally, Apple’s Mac OS X and iOS mobile operating systems are developed based on Darwin, which is a Unix-like operating system. Apple’s operating systems (Mac OS X and iOS) are closed-source, but Apple opened up Darwin in 2000.

What is an Open Source Operating System?

Open source operating systems are those whose source code is publicly available, adhering to open source licenses for usage, compilation, and redistribution. Under the premise of complying with relevant open source licenses, anyone can use the software for free and control its operation freely. The biggest feature of open source operating systems is open source code and freedom to customize.

One of the most famous open source operating systems internationally is the “Linux operating system,” which is a generic term for computer operating systems. The kernel of the Linux operating system is also named “Linux.” The Linux operating system is also the most famous example in the development of free software and open source.

The history of open source operating systems is closely linked to GNU. The GNU project, which started in 1983, aimed to develop a free and complete Unix-like operating system, including software development tools and various applications. By the time the Linux kernel was released in 1991, GNU had almost completed the development of all necessary software except for the system kernel. With the efforts of Linus Torvalds and other developers, GNU components could run on top of the Linux kernel. The entire kernel is based on the GNU General Public License (GPL), but the Linux kernel is not part of the GNU project. In March 1994, Linux version 1.0 was officially released, and Marc Ewing founded Red Hat Software Company, becoming one of the most famous Linux distributors.

Below are some advantages of open source operating systems:

Easy to Understand: Open source operating systems have publicly available source code, making it easier for developers to review and understand the code and acquire relevant knowledge.

Open and Transparent: Vulnerabilities and defects in the operating system are more easily exposed, and the development and maintenance of the code are also public.

Customizable: Users can customize based on needs according to different hardware platforms and application scenarios.

Low Cost: No commercial license fees save related development management and manpower investment costs.

Sustainable: Even if the previously developed company cannot support it for various reasons, the system can still be maintained due to the participation of a large number of developers in the open source community.

Collective Wisdom: Open source operating systems allow more developers to participate in development, concentrating more wisdom and ideas.

Why Does IoT Need Open Source Operating Systems?

Decoding The Top 10 Open Source IoT Operating Systems

For the development of IoT, “fragmentation” is a major problem, with chips, sensors, communication protocols, and application scenarios varying greatly, leading to many “mountains and forests.” For example, there are many wireless communication standards such as Bluetooth, Wi-Fi, ZigBee, PLC, Z-Wave, RF, Thread, NFC, UWB, LiFi, NB-IoT, LoRa, etc. It is clear that the lack of unified technical solutions and inconsistent architectures hinder the development of IoT and limit the scope of interconnectivity.

However, various operating systems can support different hardware, communication standards, and application scenarios. Open source helps to break down technological barriers, improve interoperability and portability, reduce development costs, and also allows developers in the open source community to participate.

In addition to the traditional resource management functions of operating systems, IoT operating systems also have the following functions:

1. Masking the Fragmentation of IoT Characteristics, Providing a Unified Programming Interface

Fragmentation refers to the diverse configurations of hardware devices and significant differences across different application fields. From low-end microcontrollers with only a few kilobytes of memory to high-end intelligent devices with hundreds of megabytes of memory. Traditional operating systems cannot adapt to this “broad spectrum” of hardware environments. If multiple operating systems are used (for example, using embedded operating systems for low-end configurations and general-purpose operating systems like Linux for high-end configurations), the differences in architecture prevent a unified programming interface and programming environment. This “fragmentation” characteristic hinders the development and growth of IoT.

IoT operating systems fully consider these fragmented hardware requirements through reasonable architectural design, making the operating system itself highly scalable and easily applicable to these hardware. At the same time, through unified abstraction and modeling, they abstract different underlying hardware and functional components into a “universal model,” providing a unified programming interface to the upper layer, masking the differences in physical hardware. The effect achieved is that the same app can run on various hardware platforms as long as these hardware platforms run the IoT operating system.

This is similar to the effect of smartphones, where the same app, such as WeChat, can run on a low-end smartphone from one manufacturer and on a high-end smartphone from another manufacturer with completely different hardware configurations, as long as both phones have the Android operating system installed. Obviously, this hardware-independent capability is the foundation for forming a good ecosystem for IoT.

2. Cultivating the IoT Ecosystem

Connecting the upstream and downstream of the IoT industry, cultivating a separate business ecosystem for IoT hardware development, IoT system software development, IoT application software development, IoT business operations, network operations, and IoT data mining, laying the foundation for the great development of IoT. This is similar to the role of smart terminal operating systems (iOS, Android, etc.) in cultivating the mobile Internet ecosystem.

3. Reducing the Cost and Time of IoT Application Development

IoT operating systems serve as a public business development platform, equipped with rich and complete basic functional components and application development environments, which can significantly reduce the development time and costs of IoT applications; enhance data sharing capabilities: a unified IoT operating system has consistent data storage and access methods, providing the possibility for data sharing between different industries. IoT operating systems can break down industry barriers, enhance data sharing capabilities between different industries, and even provide services “on top of industry services,” such as data mining.

4. Laying the Foundation for Unified Management of IoT

By adopting a unified remote control and management interface, even if the industry applications differ, the same management software can be used for unified management of the IoT, greatly enhancing the manageability and maintainability of the IoT, and even achieving unified management and maintenance of the entire IoT.

The operating system is a crucial component in IoT, and open source further promotes the openness and development of IoT. Currently, open source operating systems are widely used in IoT and will play an increasingly important role in the future.

Top Ten Open Source IoT Operating Systems

The mobile market is dominated by Android and iOS, while in the IoT system, operating systems also exhibit diversity and are not limited to one or two operating systems supporting all IoT devices.

Therefore, today we will focus on introducing the top ten open source IoT operating systems. (Although Microsoft’s Windows 10 for IoT and Apple’s iOS are also powerful, they are not included in this article due to being closed source.)

1. Android Things

Android Things is the IoT operating system that Google just launched last week, an updated version of last year’s “Brillo” operating system, which is a branch of the Android system, similar to Android Wear used for wearables and smartwatches (which is also an IoT operating system).

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: Google)

It uses a communication protocol called Weave to connect devices to the cloud and interact with services like Google Assistant. Android Things is aimed at all Java developers, regardless of whether they have mobile development experience. This operating system will support a range of computing platforms for IoT devices, including the Intel Edison platform, NXP’s Pico platform, and the “Blackberry Pi 3”.

2. Contiki

Contiki is an open-source, easily portable multitasking operating system suitable for memory-constrained network tasks. The author of the Contiki project is Dr. Adam Dunkels from the Networked Embedded Systems group at the Swedish Institute of Computer Science.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: contiki-os.org)

This system requires only a few thousand or a few hundred bytes of memory to provide a multitasking operating environment and TCP/IP support. It has been successfully ported and run on embedded microcontroller platforms (TI MSP430, Atmel AVR) as well as computers, game consoles, and other platforms. It supports standard IPv6 and IPv4 protocols, as well as low-power network standards: 6lowpan, RPL, CoAP.

3. eLinux

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: elinux.org)

eLinux, also known as Embedded Linux, is an operating system based on the Linux kernel, which is a trimmed version of Linux for embedded systems, supporting a wide range of manufacturers, chips, and products. The wiki homepage of this operating system provides a series of relevant information on development, hardware, products, manufacturers, and communities.

4. FreeRTOS

FreeRTOS is a mini real-time operating system kernel that includes functions such as task management, time management, semaphores, message queues, memory management, logging, software timers, and coroutines, which can basically meet the needs of smaller systems.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: freertos.org)

The FreeRTOS operating system is completely open-source, featuring public source code, portability, cuttable, and flexible scheduling strategies. Currently, this operating system has been deployed on millions of devices and claims to be the “leading embedded real-time operating system on the market,” providing excellent solutions for microcontrollers and microprocessors.

5. mbed OS

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: www.mbed.com)

This operating system is developed by ARM and designed specifically for IoT devices running ARM processors. It includes C++ application networks, and the company also provides other development tools and related device servers.

By default, the mbed operating system is an event-driven single-thread architecture, rather than a multi-thread (real-time operating system) environment. This ensures that it can scale down to the smallest, lowest-cost, and lowest-power IoT devices.

ARM has a strong market share in mobile devices, so this operating system’s strength and prospects should not be underestimated.

6. Raspbian

Raspbian is an operating system based on Debian, designed for Raspberry Pi hardware. This operating system includes a series of basic programs and tools to ensure the operation of Raspberry Pi hardware.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: raspbian.org)

7. RIOT

RIOT describes itself as a “friendly IoT operating system,” dedicated to being developer-friendly, resource-friendly, and IoT-friendly. Key features include C/C++ support, multithreading, energy efficiency, and partial compliance with POSIX. The RIOT open-source community has been active since 2008. RIOT can run on numerous platforms, including embedded devices, PCs, and sensors.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: riot-os.org)

8. Ubuntu Core

Ubuntu is currently the most popular version of Linux, and Ubuntu Core aims to bring Ubuntu into the IoT world. It can run on platforms such as Microsoft Azure, Google Compute Engine, Amazon Elastic Cloud Computing, and can also run on hardware such as BeagleBone Black and Raspberry Pi.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: http://developer.ubuntu.com)

9. Huawei LiteOS

Huawei LiteOS is Huawei’s “unified IoT operating system and middleware software platform” for the IoT field, featuring lightweight (kernel less than 10k), low power consumption, interconnectivity, and security. Huawei LiteOS is mainly applied in smart home, wearables, vehicle networking, smart metering, and industrial IoT areas, and can interconnect with hardware in the LiteOS ecosystem to enhance user experience.

LiteOS has characteristics such as low energy consumption, small size, and fast response, and has established an open-source community, supporting chips such as Huawei’s PLC chip HCT3911, media chip 3798M/C, IPCamera chip Hi3516A, and LTE-M chips.

10. Tizen

Tizen is an open-source operating system jointly developed by the Linux Foundation, LiMo Foundation, Intel, and Samsung Electronics, designed to meet the needs of the IoT device ecosystem (including device manufacturers, mobile operators, application developers, and independent software service providers) and is applied to phones, TVs, wearables, and other products.

Decoding The Top 10 Open Source IoT Operating Systems

(Image source: tizen.org)

The underlying platform-related APIs for Tizen are publicly available in HTML5 format, and services will cover communication, multimedia, cameras, networking, and community media. Samsung has sold several products equipped with this operating system and is its biggest supporter.

Decoding The Top 10 Open Source IoT Operating Systems

Previous Hot Articles (Click the title to read directly):

  • “How Difficult Is It to Make Smart Locks on Shared Bikes?”

  • “Cognitive Computing, Blockchain IoT, IoT Security… Those Who Understand Will Control the Future”

  • “KUKA, ABB, Fanuc, Yaskawa, Four Industrial Robot Giants Have Long Been Stationed in the IoT Field”

  • “[Heavyweight] IoT Industry Panorama Report, First to Launch a Two-Dimensional Perspective Panorama of the Domestic IoT Industry”

  • “A Cartoon Explains: Besides WiFi and Bluetooth, What Else Can the Recently Popular NB-IoT Do?”

  • “A Cartoon Explains: What Is LoRa, Which Everyone Is Talking About Behind NB-IoT?”

Decoding The Top 10 Open Source IoT Operating Systems

Leave a Comment