Introduction
In today’s PC and mobile era, the dominant operating systems may not continue their reign in the IoT era. The rule of the operating system industry is that once a monopoly is formed, it is very difficult for later entrants to overturn it; they can only wait for the next wave of industrial change. Now, a brand new operating system market opportunity full of imagination is opening up.
This critical industrial segment is bound to be a battlefield for major players. Renowned IT companies both domestically and internationally, such as ARM, Google, Microsoft, Huawei, Alibaba, and Haier, have launched IoT operating systems, presenting a spectacular scene of competing heroes. Traditional embedded system companies are also not to be outdone, launching IoT software platforms through open source and acquisition strategies, such as Intel, Wind River, SiFive, and Micrium. In this new industrial wave, domestic startups are also at the forefront, each launching their own IoT operating systems, such as QingKe, Ruff, and RT-thread.
Looking back at the development history of IoT operating systems, 2014 was an important and landmark starting point. It was from this year that international giants like ARM, Google, and Microsoft gradually emerged, and various IoT operating systems entered our field of vision.
ARM Mbed OS
Mbed OS is an operating system platform designed by ARM specifically for IoT, supporting all controllers based on the Cortex M series. Mbed OS is an open-source operating system; please refer to the source code at: https://github.com/ARMmbed/mbed-os, and for more information, visit the official website: https://mbed.com.
In simple terms, Mbed is a development platform, a microcontroller development platform based on the ARM Cortex M series.
Mbed provides a C/C++ SDK, allowing users to focus on application design without excessive concern for underlying hardware, making it somewhat similar to Arduino.
AndroidIoT/Brillo
Android Things is the new version of Google’s system after renaming Google Brillo, which was announced in 2015 as an IoT operating system. Although Brillo’s core is based on the Android system, its development and deployment are significantly different from conventional Android development. Brillo uses C++ as the main development environment, while Android Things is aimed at all Java developers, regardless of their mobile development experience.
Android Things integrates the IoT device communication platform Weave, with the Weave SDK embedded in devices for local and remote communication. The Weave Server is used for device registration, command transmission, status storage, and integration with Google services such as Google Assistant.
From a hardware resource perspective, Android Things is a high-end system, with memory often exceeding hundreds of MB, which is clearly unsuitable for microcontrollers, which is normal since its main competitor is actually Windows 10 IoT.
By the way, Google is secretly developing the well-known Fuchsia system, which is not based on the Linux kernel but on a lightweight kernel called Magenta, suitable for embedded systems. Although Android occupies a large share of the mobile device market, it still has many issues, such as severe fragmentation, poor performance on large-screen devices, and complaints from many users regarding lag and experience issues. Although the root cause of lag is often due to many rogue applications waking each other up in the background and unrestrained permissions and memory usage, it also reflects flaws in Android’s underlying architecture design. Therefore, Google is considering abandoning Linux altogether to develop its own Fuchsia, while also avoiding GPL. Given Google’s track record, this is not impossible; just look at Java and Kotlin. We developers can only hope that Fuchsia can indeed become as successful as its Chinese name suggests and benefit humanity in the future.
Windows 10 IoT Core
Windows 10 IoT is a version series of Windows 10 aimed at various smart devices, covering a wide range from small industrial gateways to larger, more complex devices (such as point-of-sale terminals and ATMs). By combining the latest Microsoft development tools and Azure IoT services, partners can collect, store, and process data to create actionable business intelligence and effective business outcomes. After building solutions based on Windows 10 IoT, partners will discover more opportunities while utilizing a range of Microsoft technologies to provide end-to-end solutions.
Since Windows 10 for IoT is a brand-new product, it is clearly lagging behind many other IoT operating systems in terms of user base and experienced developers. That said, this operating system has great potential, especially if you want to develop applications internally. Ultimately, those accustomed to using Visual Studio and Azure IoT services for Windows development will be attracted to the complete Windows 10 for IoT solution.
WatchOS
Having mentioned so many giants, how could we miss Apple? Apple has OS X on the desktop and iOS on mobile. Although Apple currently does not play a significant role in the IoT market, it has utilized variants of its operating system platform to develop several IoT devices, such as Apple TV, CarPlay (with the help of BlackBerry QNX), and Apple Watch.
Ubuntu Core 16
Ubuntu has revealed its latest thoughts on IoT, which is to make Linux the core that makes IoT smarter and more scalable. Snappy Ubuntu Core is the latest platform for smart devices, promising to run the same software stored locally or relying on the cloud. Clearly, the latter’s biggest benefit is that it allows users to avoid frequent periodic upgrades.
The Ubuntu Core team recognizes that the number of “connected devices” will surge. While regular maintenance and updates for phones and computers are well ingrained, devices like washing machines, thermostats, and smart switches are often overlooked.
Moreover, in the face of frequent hacking attacks, the security of connected devices also needs careful consideration. Without the latest security patches and firmware fixes, connected device users will face significant risks.
More importantly, Ubuntu Core can run both on devices and rely on the cloud. Regardless of whether they run on ARM or x86 platforms, developers will receive the same API and security updates.
As of now, Ubuntu’s parent company Canonical has 21 partners, and we hope this number will see significant growth this year.
Website: http://www.ubuntu-china.cn/internet-of-things/
Image download: http://releases.ubuntu.com/ubuntu-core/16/
μCLinux
μClinux is an excellent embedded Linux version, with its full name being micro-control Linux, which literally means micro-control Linux. Compared to standard Linux, μClinux has a very small kernel, yet it still inherits the main features of the Linux operating system, including good stability and portability, strong networking capabilities, excellent file system support, a rich standard API, and TCP/IP network protocols. Due to the absence of an MMU memory management unit, its multitasking implementation requires some technique.
Like Linux, the μClinux operating system divides interrupt handling into two parts: top-half processing and bottom-half processing. In top-half processing, interrupts must be disabled, and only necessary, very few, fast processes are performed; other processes are left to the bottom-half processing. The bottom-half processing executes those complex, time-consuming processes and accepts interrupts. The presence of many interrupts in the system’s bottom-half processing can cause delays in the system’s interrupt handling.
The most significant feature of μClinux is its design for processors without an MMU, allowing it to utilize the powerful resources of Linux, making it suitable for developing various low-cost, small-capacity products that do not have high event requirements, particularly for embedded devices closely related to network applications or PDA devices.
Download address: http://www.uclinux.org/pub/uClinux/ or https://sourceforge.net/projects/uclinux/.
QNX
QNX is a distributed, embedded, scalable real-time operating system. It adheres to POSIX.1 (programming interface) and POSIX.2 (shell and tools), partially follows POSIX.1b (real-time extension). It was born in 1980 and has a history of 37 years.
QNX is a microkernel real-time operating system, with its core providing only four services: process scheduling, inter-process communication, low-level network communication, and interrupt handling, with its processes running in independent address spaces. All other OS services are implemented as cooperating user processes, making the QNX core very small (QNX4.x is about 12Kb) and extremely fast.
QNX is widely recognized as one of the best embedded real-time operating systems on the X86 platform. It features a unique microkernel real-time platform built on microkernel and complete address space protection, providing real-time, stability, and reliability, and has been ported to PowerPC, MIPS, ARM, and other kernels, becoming a widely used embedded real-time operating system in China. Although QNX itself does not belong to UNIX, its provision of POSIX support allows most traditional UNIX programs to be compiled and run on QNX with minimal modifications (or even no modifications).
Based on a highly reliable kernel, QNX’s innovative design also ensures high efficiency. The most striking aspect of QNX is that it is a sibling heterotype of UNIX, maintaining a high degree of similarity with UNIX, allowing the vast majority of UNIX or LINUX applications to be directly compiled on QNX. This means that numerous stable and mature UNIX and LINUX applications can be directly ported to QNX, which is a more stable and efficient real-time embedded platform.
TRON
TRON is an open-source real-time operating system kernel design project, short for “The Real-time Operating system Nucleus.” The project was initiated in 1984 by Professor Ken Sakamura at the University of Tokyo, aiming to develop an ideal computer architecture and network for the needs of society.
Professor Sakamura has always been a thinker who breaks frameworks and speaks boldly, and he passionately supports the next generation of computing architecture; most of his academic life has been devoted to developing TRON and promoting the ubiquitous computing concept in Japan. He stated that his envisioned “Intelligent Object Network”—similar to the popular IoT—can be traced back to one of TRON’s goals developed in 1987.
TRON is not well-known in China, but its applications are extensive, and those interested can search for related articles to learn more, such as “TRON: Another World of Operating Systems Accompanying Life.”
μT/OS
Dalian Youlong Software Technology Co., Ltd. started in 2008 by drawing on Google’s successful business model on Android, developing the world’s first real-time operating system kernel that supports Cortex M3 and μT-Kernel specifications by the end of 2009. It gradually added mature lightweight open-source middleware from Linux, launching China’s own open-source real-time operating system—μTenux, where the kernel following the μT-Kernel specification is named μT/OS. μTenux supports various 32-bit core microcontrollers such as CortexM0/3/4, ARMV4T, and ARMV5E, and has become a global strategic partner of ATMEL and ARM companies in 2010 and 2011.
Recently, uT/OS V3.0 was launched, supporting the entire ST Nucleo board series, supporting the STM32 Cube library, supporting dynamic program downloads, and adding security APIs.
Github address: https://github.com/TenuxOS.
μCOS-II/μCOS-III
Those involved in embedded development in China should have heard of μCOS, which has widespread application in the country, thanks to its good coding style and openness, as well as the completeness of its accompanying middleware and documentation, with many Chinese books on μCOS published with the support of Beijing Maiketech Company and some domestic embedded experts.
μC/OS-II is the successor to μC/OS, originally published in a serial article by American embedded system expert Jean J. Labrosse in the May and June issues of the “Embedded Systems Programming” magazine in 1992, and the source code for μC/OS was released on the magazine’s BBS. μC/OS-II was developed based on μC-OS and is a compact, preemptive multitasking real-time kernel written in C. μC/OS-II can manage 64 tasks and provides task scheduling and management, memory management, inter-task synchronization and communication, time management, and interrupt servicing, featuring high execution efficiency, small space occupancy, excellent real-time performance, and strong scalability.
Interrupt handling in μC/OS-II is relatively simple. An interrupt vector can only hang one interrupt service routine (ISR), and user code must be completed in the ISR. The more tasks an ISR needs to perform, the longer the interrupt delay, with a maximum nesting depth of 255 supported by the kernel.
Micrium announced the addition of μC/OS-MMU and μC/OS-MPU products to its embedded products. These two products enhance critical memory functions in embedded systems. μC/OS-MMU provides memory protection for central processing units (CPUs) with memory management units (MMUs) by providing time and space protection for multiple independent applications. μC/OS-MPU prevents unauthorized access to system memory and protects memory contents for CPUs with memory protection units.
For differences and performance comparisons between μCOS-II and μCOS-III, related articles can be searched for more information, such as “Performance Comparison between UCOS-II and UCOS-III.”
In 2016, to strengthen its embedded IoT design solutions, Silicon Labs announced the acquisition of Micrium, a supplier of real-time operating system (RTOS) software, to enhance the completeness of embedded solutions in IoT.
FreeRTOS
FreeRTOS is a mini real-time operating system kernel. As a lightweight operating system, its functions include task management, time management, semaphores, message queues, memory management, logging, software timers, coroutines, etc., which can basically meet the needs of smaller systems.
Features of FreeRTOS include:
Configurable kernel functionality
Multi-platform support
Provides a high-level integrity of trusted code
Target code is small, simple to use
Complies with MISRA-C standards for programming
Powerful execution tracing capabilities
Stack overflow detection
No limit on the number of tasks
No limit on task priority
Multiple tasks can be assigned the same priority
Queues, binary semaphores, counting semaphores, and recursive communication and synchronization tasks
Priority inheritance
Free open-source source code
Richard Barry, the founder of FreeRTOS, has written a large amount of porting code and supporting documentation, which can be obtained from the FreeRTOS official website (www.freertos.org) for related learning materials and source code.
SafeRTOS is based on FreeRTOS and is a safety-certified RTOS, thus providing confidence in the safety of FreeRTOS.
RT-Thread (Domestic)
RT-Thread is a technology platform integrating the real-time operating system (RTOS) kernel, middleware components, and developer community, developed by Mr. Xiong Puxiang and the open-source community. RT-Thread is a rich, highly scalable, easy-to-develop, ultra-low-power, and highly secure IoT operating system. RT-Thread has all the key components required for an IoT OS platform, such as GUI, network protocol stack, secure transmission, low-power components, etc. After 11 years of accumulated development, RT-Thread has become the largest embedded open-source community in China, widely used in various industries such as energy, automotive, medical, and consumer electronics, with a cumulative installation of over 20 million units, making it the most mature and stable open-source RTOS developed independently by Chinese people.
RT-Thread has a good software ecosystem, supporting all mainstream compilation tools on the market, such as GCC, Keil, IAR, etc. The toolchain is complete and friendly, supporting various standard interfaces, such as POSIX, CMSIS, C++ application environment, Javascript execution environment, etc., making it easy for developers to port various applications. Commercial support is available for all mainstream MCU architectures, such as ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V, almost supporting all mainstream MCUs and Wi-Fi chips on the market.
The RT-Thread real-time operating system follows the GPLv2+ license, allowing the real-time operating system kernel and all open-source components to be used for free in commercial products without the need to disclose application source code, eliminating potential commercial risks.
Official website: http://www.rt-thread.org/
Nucleus OS
Nucleus is a preemptive multitasking operating system kernel designed for real-time embedded applications, with 95% of its code written in ANSIC, making it easy to port and support most types of processors. From an implementation perspective, NucleusPLUS is a set of C function libraries, with application code connected to the core function libraries to generate target code, which can be downloaded to the target board’s RAM or directly burned into the target board’s ROM for execution.
Nucleus is an embedded operating system developed by Mentor Graphics. The company claims that its software currently runs on over 3 billion devices, representing a substantial installation base. This operating system provides strong support for numerous embedded architectures, gaining popularity in vertical fields such as automotive, medical, utilities, industrial, and consumer electronics. The shared bike Bluegogo uses Nucleus OS.
Official website: https://www.mentor.com/embedded-software/nucleus/
NuttX
NuttX is a real-time embedded operating system (Embedded RTOS) that is compact and used in microcontroller environments. NuttX is fully scalable, usable from small (8-bit) to medium embedded (32-bit) systems. Its design aims to fully comply with POSIX standards, being fully real-time and completely open.
The first version of NuttX was released by Gregory Nutt in 2007 under a permissive BSD license.
I first heard about NuttX on a quadcopter forum; NuttX supports various microcontrollers and boards, including Allwinner, Atmel, Freescale, MicroChip, nuvoTon, NXP, Hitachi, STMicroelectronics, Texas Instruments, etc., and has good support for file systems and networks, also providing a shell similar to bash.
Official website: http://www.nuttx.org
Wiki: http://www.nuttx.org/doku.php?id=wiki
Download: http://sourceforge.net/projects/nuttx
SylixOS
SylixOS is an embedded hard real-time operating system, with globally recognized similar operating systems including VxWorks (mainly used in aerospace, military, and industrial automation), RTEMS (originating from the U.S. Department of Defense’s missile and rocket control real-time systems), and ThreadX (mainly used in aerospace and digital communications).
Globally, SylixOS, as a newcomer among real-time operating systems, has borrowed design ideas from many real-time operating systems, including RTEMS, VxWorks, ThreadX, etc., achieving performance parameters that reach or exceed many real-time operating systems, becoming one of the best representatives of domestic real-time operating systems.
The main features of SylixOS include:
Compatible with IEEE 1003 (ISO/IEC 9945) operating system interface specification
Compatible with POSIX 1003.1b (ISO/IEC 9945-1) real-time programming standards
Excellent real-time performance (task scheduling and switching, interrupt response algorithms are all O(1) time complexity algorithms)
Supports unlimited multitasking
Supports three multitasking models: process, thread, and coroutine
Supports priority inheritance to prevent priority inversion
Extremely stable kernel with low kernel CPU utilization
Supports tightly coupled heterogeneous multiprocessors (SMP)
Supports standard I/O, multiplexed I/O, and asynchronous I/O interfaces
Supports various new asynchronous event synchronization interfaces, such as: signalfd, timerfd, hstimerfd, eventfd, etc.
Supports numerous standard file systems: FAT, YAFFS, ROOTFS, PROCFS, NFS, ROMFS, etc.
Supports file record locks and can provide support for various types of real-time databases (SQL, NoSQL, In-Mem DB)
Supports dynamic application loading, dynamic linking libraries, and kernel modules
Supports standard TCP/IPv4/v6 dual network protocol stacks
Supports AF_UNIX, AF_PACKET, AF_INET, AF_INET6 protocol domains
Integrates numerous network tools, such as: FTP, TFTP, NAT, PING, TELNET, NFS, etc.
Supports numerous standard device abstractions, such as: TTY, BLOCK, DMA, ATA, GRAPH, RTC, PIPE, etc.
Supports various industrial devices or bus models, such as: CAN, I2C, SPI, USB, PCI, SDIO, etc.
Provides kernel behavior trackers for easy debugging
Can support numerous graphical interface systems, such as: Qt, ftk, ucGUI, etc.
Official website: http://www.sylixos.com/
Code download: http://git.sylixos.com/cgit/
Related documentation: http://wiki.sylixos.com/
liteOS
Huawei IoT operating system Huawei LiteOS is a lightweight operating system developed by Huawei for the IoT field, based on a real-time kernel. This project belongs to the source code of Huawei’s IoT operating system Huawei LiteOS, with existing code supporting task scheduling, memory management, interrupt mechanisms, queue management, event management, IPC mechanisms, time management, software timers, and common data structures such as doubly linked lists.
The code for Huawei LiteOS will be under the BSD 3-Clause License unless Huawei chooses another license (“Applicable License”). Recipients can visit http://opensource.org/licenses/BSD-3-Clause for detailed information about this license.
Lite OS is currently the world’s lightest IoT operating system, with a system size as light as 10KB, featuring zero configuration, self-organizing network, and cross-platform capabilities, widely applicable in smart homes, wearables, and industrial fields. As LiteOS is open-source, partners can quickly build their own IoT products, making the development of smart hardware simpler and accelerating the realization of interconnectivity among everything. Lite OS’s model is similar to the Contiki system invented by researchers at the University of Oxford and TinyOS invented by the University of California, Berkeley, both of which also feature lightweight and open-source characteristics.
LiteOS operating system has the characteristics of the lowest energy consumption, smallest size, and fastest response, and has launched a fully open-source community, providing chips, modules, and open-source hardware boards, such as Huawei’s PLC chip HCT3911, media chip 3798M/C, IPCamera chip Hi3516A, and LTE-M chip (developers can also choose third-party chips such as STM32, etc.).
LiteOS is mainly applied to smart hardware in IoT fields such as smart homes, wearables, vehicle networking, smart metering, and industrial internet, with data collection and real-time control being its typical usage scenarios.
Huawei LiteOS quick start: http://developer.huawei.com/ict/cn/site-iot/article/liteos-start/
Code download: https://github.com/LITEOS/LiteOS_Kernel
AliOS/YunOS
It is understood that the new Alibaba operating system division will continue to increase investment in the IoT field, developing IoT operating systems for automobiles, IoT terminals, IoT chips, and industrial fields, and integrating the original YunOS mobile business. The previous YunOS has evolved into AliOS.
YunOS is developed based on Linux, equipped with self-developed core operating system functions and components, supporting HTML5 ecology and the unique CloudCard application environment, enhancing cloud service capabilities.
Regarding this operating system upgrade, insiders at Alibaba stated that this round of actions is mainly for overall brand upgrading. Previously, the internet automotive business, IoT business, mobile phone business, etc., all had different names, and now they are unified as AliOS, clearly defining the focus and integrating the original YunOS mobile business, positioning it as an IoT operating system, with a focus on developing automotive operating systems, IoT, and other fields.
Alibaba Group’s Senior Vice President and AliOS President Hu Xiaoming stated: “Alibaba Group will continue to deepen its investment in the automotive operating system field, partnering with Zebra Network and more partners across the automotive industry chain to jointly promote the intelligent transformation of the automotive industry. Today, non-smartphones have become antiques. In the future, non-smart cars will also become antiques. Cars are the beginning of AliOS driving intelligence in everything, and we will define an IoT operating system that is different from the PC and mobile eras.”
Recently, Alibaba also fulfilled its promise by opening up AliOS-Things, with the GitHub address: https://github.com/alibaba/AliOS-Things
MiCO
MiCO IoT OS was released in July 2014 by Shanghai QingKe in collaboration with Alibaba Smart Cloud, making it the first truly IoT operating system in China. In simple terms, it is a fully real-time IoT operating system based on MCU, designed for smart hardware, and running on microcontrollers, serving as a highly portable operating system and middleware development platform widely used in smart appliances, lighting, medical, security, entertainment, and other IoT application markets.
MiCO stands for Micro-controller based Internet Connectivity Operating system. It is an Internet connectivity operating system based on microcontrollers. Developers can design innovative smart products that connect to the internet based on MiCO on various microcontroller platforms, achieving interconnection between people and things.
MiCO is a real-time operating system highly portable and optimized for smart hardware, including various software middleware, thus reducing development costs and improving development efficiency, making it the first IoT operating system in China. MiCO provides a complete solution, including suggested wireless network configuration, initial setup of smart hardware, rapid wireless network access, local device and service discovery, identity authentication, and other components. All these can reduce research and development investment and maintenance costs, shortening the development cycle.
MiCO IoT engineer development service platform: http://mico.io/
Ruff
Ruff is an IoT operating system that supports JavaScript application development, providing software developers with an open, efficient, and agile IoT application development platform, making IoT application development simpler.
Ruff abstracts hardware and uses an event-driven, asynchronous I/O model, making hardware development lightweight and efficient. In addition to using JavaScript as the development language, it also has its own software repository, covering everything from modules to drivers, improving software compatibility and lowering hardware development thresholds.
The entire Ruff development system includes Ruff OS, Ruff SDK, Ruff software repository, and Ruff Kit development kit. As long as you have software development experience, you can use Ruff to develop hardware applications.
Ruff’s features include:
JavaScript programming—using the only full-stack language with a large developer base as the programming language
Hardware abstraction—operating hardware by calling libraries, lowering the entry threshold for development
Cross-platform—ignoring board differences, the same application code can run on different boards
Efficient and convenient development—saying goodbye to cross-compilation and flashing boards, completing testing on PC and deploying with one click
Official website: https://ruff.io/zh-cn/
Zephyr
The Linux Foundation announced a microkernel project—Zephyr, led by Intel, with technology provided by Wind River. The Zephyr microkernel will be used to develop real-time operating systems (RTOS) for IoT devices. The Zephyr project has the support of companies such as Intel, NXP Semiconductors, Synopsys, and UbiquiOS, with Intel’s subsidiary Wind River donating its Rocket RTOS kernel to the Zephyr project.
Wind River’s Rocket RTOS will be transformed into a downstream commercial distribution based on the Zephyr kernel. The Zephyr microkernel can run on 32-bit microcontrollers with only 10KB of RAM, whereas the Linux-based microcontroller project uClinux requires 200KB of RAM.
The Zephyr project provides security features at both the device and communication protocol stack levels, and the community also takes security issues seriously, planning to establish a dedicated security working group and appoint a security maintainer.
Official website: https://www.zephyrproject.org/
Ostro
The Ostro operating system is specially built for IoT, allowing developers to get started immediately, saving a lot of time, with very comprehensive functionality, including extensive connectivity standards, supporting connection methods such as Bluetooth, WiFi, and NFC, and supporting various device-to-device interconnectivity standards like IoTivity; including security measures such as secure boot, mandatory access control, encryption standards, and software security update protocols; advanced device management and intuitive development tools.
It is an open-source operating system based on Linux, specially tailored for IoT smart devices, capable of customizing functions for any number of IoT use cases, including Linux reference designs, software package installation and management mechanisms. Additionally, its development tools allow the connection potential of devices to be maximized. The Ostro project not only provides tools for managing numerous devices but also ensures the security of the IoT world.
The Ostro operating system is highly adaptable, usable directly on supported devices, and can be customized as needed, with the development environment providing multiple language options (Native (C/C++) and Node.js), making it easy to find drivers for new devices and fully leverage all resources from the Linux community. Finally, it also offers top-down security options from boot/kernel to middleware and applications.
The Ostro operating system includes easy-to-use tools that make development and prototyping easy. It utilizes the Yocto project’s toolset environment for configuring the operating system and application packages, allowing developers to create an ideal configuration and then modify it as needed. When using Linux-based development tools, existing Linux and Android developers do not need any additional learning process, as they can directly use interactive compilation tools to generate programs.
Official website: https://ostroproject.org/
TinyOS
Tiny OS is an open-source operating system developed by UC Berkeley, specifically designed for embedded wireless sensor networks. The operating system is based on a component-based architecture, making rapid updates possible while reducing the code length constrained by sensor network storage limitations. Tiny OS is a highly specialized operating system designed for low-power wireless devices, mainly applied in sensor networks, ubiquitous computing, personal area networks, smart homes, and smart measurement.
The following features of Tiny OS determine its wide application in sensor networks, making it occupy a significant position in IoT.
Compared to mainstream operating systems with hundreds of MB, Tiny OS is extremely miniaturized, requiring only a few KB of memory space and a few tens of KB of code space to run, with low power consumption, making it particularly suitable for sensors constrained by memory and power consumption.
Tiny OS itself provides a series of components, including: network protocols, distributed servers, sensor drivers, and data recognition tools, allowing users to easily connect multiple components through simple programming to obtain and process sensor data and transmit information via radio.
When building wireless sensor networks, Tiny OS controls various sensor sub-nodes via a base console, gathering and processing the information collected from each sub-node. Tiny OS only needs to issue management information from the console, which is then transmitted by each node through the wireless network to achieve coordinated consensus.
For more information, please visit: http://tinyos.stanford.edu/tinyos-wiki/index.php/Main_Page
eCOS (GNU)
eCos (embedded Configurable operating system) is suitable for deep embedded applications, mainly targeting consumer electronics, telecommunications, automotive devices, handheld devices, and other low-cost and portable applications. eCos is open-source software, requiring no royalty payments.
It is a configurable, portable real-time operating system aimed at deep embedded applications. Its most significant feature is flexible configuration and modular design, with the core part consisting of small components, including the kernel, C library, and low-level runtime packages. Each component can provide a large number of configuration options (the real-time kernel can also be configured as optional), and using the configuration tools provided by eCos, it can be easily configured to meet different embedded application requirements.
eCos uses a layered interrupt handling mechanism, dividing interrupt handling into traditional ISR and deferred interrupt service routines (DSR). Similar to μClinux’s handling mechanism, this mechanism allows DSRs to run when interrupts are enabled, thus allowing higher-priority interrupts and processing while handling lower-priority interrupts. To greatly reduce interrupt latency, ISRs should be able to run quickly. If the service volume triggered by interrupts is small, the ISR can handle the interrupts alone; if the interrupt service is complex, the ISR only masks the interrupt source and hands it over to the DSR for processing.
Official website: http://ecos.sourceware.org/
Contiki
The Contiki system’s name comes from Thor Heyerdahl’s Kon-Tiki, invented by researchers at Oxford University.
Contiki is an open-source, highly portable, network-enabled multitasking operating system suitable for memory-constrained embedded systems. It includes a multitasking kernel, TCP/IP stack, assembly, and low-power wireless communication stack. Contiki is a very small embedded operating system developed in C, requiring only a few kilobytes of memory to run.
Contiki has excellent TCP/IP network support, including IPv4 and IPv6, as well as 6Lowpan message compression, RPL routing, and CoAP application layers, becoming the primary platform for the development and experimentation of low-power wireless networking protocols for wireless sensor networks and the perception layer of IoT, with 6Lowpan having become an IETF standard, and adopted by Zigbee SEP2.0 and ISA100.11a standards.
Author: Archimedes
Original article: https://blog.csdn.net/lu_embedded/article/details/78363460
Copyright statement: This article is an original work by the blogger.