Real-time operating systems (RTOS) that meet real-time control requirements are introduced below. Here are 14 mainstream RTOS: μClinux, μC/OS-II, eCos, FreeRTOS, mbed OS, RTX, Vxworks, QNX, NuttX, and domestic embedded operating systems include Dujiangyan Operating System (djyos), AliOS Things, Huawei LiteOS, RT-Thread, and SylixOS.
Below are the characteristics of these fourteen embedded operating systems.
1. μClinux
μClinux is an excellent version of embedded Linux, officially named micro-control Linux, which literally means micro-controller Linux. Compared to standard Linux, μClinux has a very small kernel, yet it inherits the main features of the Linux operating system, including good stability and portability, strong networking capabilities, excellent file system support, a rich set of standard APIs, and TCP/IP networking protocol support. Due to the absence of an MMU (Memory Management Unit), its multitasking implementation requires certain skills.
Structurally, μClinux inherits the multitasking implementation of standard Linux, dividing processes into real-time processes and ordinary processes, using first-come-first-served and time-slice round-robin scheduling, respectively, specifically modified for mid-to-low-end embedded CPU characteristics, and does not support kernel preemption, resulting in general real-time performance.
In summary, the main feature of μClinux is its design for MMU-less processors, which is suitable for the STM32F103 that lacks MMU functionality. However, porting this system requires at least 512KB of RAM and 1MB of ROM/FLASH space. The STM32F103 has 256K of FLASH and requires external storage, which increases the hardware design cost.
μClinux has a complex structure, is relatively difficult to port, has a larger kernel, and its real-time performance is somewhat poor. If the embedded product being developed emphasizes file systems and network applications, μClinux is a good choice.
μC/OS-II is 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 service functions. It features high execution efficiency, small footprint, excellent real-time performance, and strong scalability.
In terms of file system support, μC/OS-II is aimed at small to medium embedded systems. Even with all features included, the compiled kernel is less than 10 KB, so the system itself does not provide file system support. However, μC/OS-II has good extensibility, and file system content can be added if needed.
In terms of hardware support, μC/OS-II can support most popular CPUs. Since the kernel is very small, the minimum trimmed code can be as low as 2KB, with a minimum data RAM requirement of 4 KB. Porting μC/OS-II is relatively simple; it only requires modification of processor-specific code.
In summary, μC/OS-II is a simple-structured, fully functional, and highly real-time embedded operating system kernel, making it very suitable for CPUs without MMU functionality. It requires very little kernel code space and data storage space, has good real-time performance, good scalability, and is open-source, with a wealth of online resources and examples, making it well-suited for porting to the STM32F103 CPU.

eCos (embedded Configurable Operating System) is an open-source, configurable, portable real-time operating system aimed at deeply embedded applications.
The main feature is its flexible configuration, utilizing a modular design with core components including the kernel, C language library, and lower-level runtime packages.
Each component can provide a large number of configuration options (the real-time kernel can also be an optional configuration). The configuration tools provided by eCos make it easy to configure, and through different configurations, eCos can meet various embedded application requirements.
eCos’ configurability is very powerful, allowing users to add the necessary file system. eCos also supports most popular embedded CPUs and can be ported across different architectures including 16-bit, 32-bit, and 64-bit.
Due to its small kernel, the trimmed code can be as low as 10 KB, with a minimum data RAM requirement of 10 KB.
In terms of system portability, eCos has good portability, making it easier to port than μC/OS-II and μClinux.
In conclusion, eCos’ main feature is flexible configuration, and it supports the porting of MMU-less CPUs, is open-source, and has good portability, making it suitable for porting to STM32 platform CPUs. However, eCos is not yet widely used and lacks the extensive documentation available for μC/OS-II. eCos is suitable for commercial or industrial embedded systems that are cost-sensitive, such as some applications in consumer electronics.
As RTOS requires a certain amount of system resources (especially RAM), only a few real-time operating systems like μC/OS-II, embOS, salvo, and FreeRTOS can run on small RAM microcontrollers.
Compared to commercial operating systems like μC/OS-II and embOS, FreeRTOS is a completely free operating system with open-source code, portability, modularity, and flexible scheduling policies, making it easy to port to various microcontrollers. Its latest version is 6.0.
As a lightweight operating system, FreeRTOS provides features including task management, time management, semaphores, message queues, memory management, and logging functions, which can basically meet the needs of smaller systems.
FreeRTOS kernel supports priority scheduling algorithms, allowing each task to be assigned a priority based on its importance, with the CPU always allowing the highest priority task in the ready state to run first.
The FreeRTOS kernel also supports round-robin scheduling, allowing different tasks to share the CPU time when no higher priority tasks are ready.
Shortcomings of FreeRTOS:
Compared to the commonly used μC/OS-II operating system, FreeRTOS has both advantages and disadvantages.
Its shortcomings are reflected in the system service functions. For example, FreeRTOS only provides implementations for message queues and semaphores, and cannot send messages to the message queue in a last-in-first-out order. Furthermore, FreeRTOS is only an operating system kernel and requires external third-party components like GUI (Graphical User Interface), TCP/IP stack, FS (File System), etc., to implement a more complex system, unlike μC/OS-II, which can seamlessly integrate with μC/GUI, μC/FS, μC/TCP-IP, etc.

mbed OS is an open-source embedded operating system provided free of charge by ARM for all manufacturers, offering a relatively more systematic and comprehensive development environment for smart hardware.
Provides a general operating system foundation for developing IoT devices to solve the fragmentation problem in embedded design. Supports all important connectivity and device management open standards for future-oriented designs. Enables secure, upgradeable edge devices to support new processing capabilities and functions. Addresses complex energy consumption issues through automatic power management.
Fast development speed, powerful functionality, high security, designed for mass production, can be developed offline, and can also be edited online.

RTX is an embedded real-time operating system developed by ARM, written in standard C structure and compiled using the RealView compiler. It is not just a real-time kernel; it also contains rich middleware components, is free, and its code is open.
Start and stop tasks (processes), support process communication, such as synchronization of tasks, management of shared resources (peripherals or memory), and message passing between tasks. Developers can use basic functions to start the real-time runner, begin and end tasks, and pass control between tasks (round-robin scheduling). Developers can assign priorities to tasks.
Supports time-slicing, preemptive, and cooperative scheduling. Unlimited number of tasks, with each task having up to 254 priorities. Unlimited number of semaphores, mutex semaphores, message mailboxes, and soft timers. Supports multithreading and thread-safe operations. The MDK configuration wizard can easily complete MDK configuration.
VxWorks is an embedded real-time operating system (RTOS) designed and developed by Wind River in the United States in 1983, featuring hard real-time capabilities, determinism, and stability, as well as scalability and security required by industries such as aerospace and defense, industrial, medical, automotive, consumer electronics, networking, and others.
Supports predictable task synchronization mechanisms, inter-task communication, memory optimization management, and the OS’s (interrupt latency, task switching, driver latency, etc.) behavior is predictable and known. Real-time clock services + interrupt management services.
Features a high-performance operating system kernel Wind (good real-time performance, modularity), a friendly development debugging environment, good compatibility, and support for various development and runtime environments.

Born in 1980, QNX is a commercial POSIX-compliant Unix-like embedded real-time operating system.
Supports scheduling and execution of multiple tasks on the same computer; allows multiple users to share a single computer, enabling them to submit tasks to the system through multiple terminals and interact with QNX.
The core provides only four services: process scheduling, inter-process communication, low-level network communication, and interrupt handling. Its processes run in independent address spaces. All other OS services are implemented as cooperative user processes, making the QNX core very small (QNX4.x is about 12KB) and extremely fast.

NuttX is a real-time embedded operating system (Embedded RTOS) first released by Gregory Nutt in 2007 under a permissive BSD license.
Can be built as an open, flat embedded RTOS, or separately constructed as a microkernel with system call interfaces. Easily extensible to new processor architectures, SoC architectures, or board-level architectures. Real-time, deterministic, supports priority inheritance. BSD socket interface. Priority management extensions. Optional tasks (processes) with address environments.
Flexible configuration, adopting a modular design, with core components including the kernel, C language library, and lower-level runtime packages. Each component can provide a large number of configuration options (the real-time kernel can also be an optional configuration), making it easy to configure using eCos configuration tools, allowing eCos to meet various embedded application requirements.
10. Dujiangyan Operating System (djyos)
(Note: Users have pointed out that the Dujiangyan Operating System’s official website indicates that the STM32 F4 and F7 have not been debugged.)
Dujiangyan Operating System, abbreviated as djyos, is named after a great water conservancy project: Dujiangyan.
Unlike traditional operating systems, djyos is event-driven rather than thread-based, allowing programmers to break free from the mindset of programming as if simulating a computer’s execution process, instead writing applications in a way that aligns with human cognitive processes, much like introducing VC in embedded programming.
The scheduling algorithm of djyos allows programmers to escape the constraints of threads and processes; djyos has no APIs related to threads, enabling programmers with no knowledge of threads to successfully write applications under djyos.
Dujiangyan Operating System schedules based on events, allowing programmers to program according to human cognitive habits rather than computer habits.

According to well-known media reports on embedded operating systems RTOS, AliOS Things is a scalable IoT operating system under the AliOS family. AliOS Things aims to build a unified IoT infrastructure in the cloud with extreme performance, simplified development, integrated cloud, rich components, and security capabilities, widely applicable in smart home, smart city, and new transportation fields.
Comment: The Ali system is a strong player entering the IoT market, leveraging Alibaba’s resources and collaborating with chip and module manufacturers, but this also poses a significant disadvantage!

Huawei LiteOS is a lightweight IoT operating system built by Huawei for the IoT field, focusing on lightweight, low power consumption, fast startup, and interoperability, providing developers with a “one-stop” complete software platform that effectively lowers development thresholds and shortens development cycles.
Comment: A Huawei product, but its open-source level is relatively low, mainly used for Huawei’s own products, overshadowed by a large tree.

RT-Thread is a technology platform that integrates a real-time operating system (RTOS) kernel, middleware components, and a developer community, developed by Mr. Xiong Puxiang and the open-source community. RT-Thread is a comprehensive, highly scalable, easy-to-develop, ultra-low-power, and highly secure IoT operating system. RT-Thread includes all the key components required for an IoT OS platform, such as GUI, network protocol stacks, secure transmission, low-power components, etc. After 11 years of accumulated development, RT-Thread has one of the largest embedded open-source communities in China and is widely used in various industries such as energy, automotive, medical, and consumer electronics, with a cumulative installed base exceeding 20 million units, making it the most mature and stable open-source RTOS developed independently in China.
Comment: The most likely candidate to become Top 1 in China, with advantages in rich components and a neutral stance! It has seized the opportunity and gained support from many chip manufacturers, also quite favored by developers. The downside is that its documentation and tutorials are still weaker compared to FreeRTOS and others.
Recommended learning resources for embedded operating systems RTOS:1. Documentation: https://www.rt-thread.org/document/site/2. Books: “Embedded Real-Time Operating Systems: RT-Thread Design and Implementation” and “RT-Thread Kernel Implementation and Application Development Practical Guide Based on STM32”

SylixOS is an open-source, cross-platform large real-time operating system (RTOS) that was born in 2006. After more than a decade of continuous development, SylixOS has become one of the most comprehensive domestic operating systems. It has numerous product and project application cases in various fields, including aerospace, military defense, rail transportation, smart grids, and industrial automation. SylixOS fully complies with POSIX standards, making it convenient to port a wealth of free software from the open-source community.
Comment: This company is also quite interesting, having started in 2006, primarily catering to military needs, and has only recently begun to gain attention. Its strength should not be underestimated!
Reference website: http://www.sylixos.com/
Of course, RTOS is not limited to the above; if there is relevant information, we will continue to provide updates.
References:
[1] Embedded Operating Systems RTOS. “Which Domestic Embedded Operating Systems Are Worth Considering?”
[2] Guoxin Xinyi. “Review of Real-Time Efficient IoT Operating Systems”
[3] Baidu Encyclopedia Source: Embedded ARM