下面介绍这 14 种嵌入式操作系统中每个操作系统的特征。
1、μClinux
μClinux是嵌入式Linux的一个优秀版本,它的全称是micro-control Linux,字面意思是微控Linux。与标准Linux相比,μClinux的内核非常小,但它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和可移植性、强大的网络功能、优秀的文件系统支持、标准丰富的API和TCP/IP网络协议。因为没有MMU,所以多任务处理的实现需要一定的技能。
μClinux在结构上继承了标准Linux的多任务实现模式,分为实时进程和普通进程,分别采用先到先得的服务和时间片轮换调度,仅针对低端嵌入式CPU的特点进行了改进,不支持内核抢占,实时性能一般。
综上所述,μClinux最大的特点是专为无MMU处理器设计,适用于没有MMU功能的stm32f103,但移植这个系统至少需要512KB的RAM空间和1MB的ROM/FLASH空间,而stmf103有256K FLASH,需要外部存储器,这增加了硬件设计的成本。
μClinux结构复杂,移植难度比较大,内核也大,实时性能较差,所以如果嵌入式产品的开发侧重于文件系统和网络应用,μClinux是一个不错的选择。
2、μC/OS-II
μC/OS-II 是基于 μC/OS 的小型、抢占式、多任务实时内核,可管理 64 个任务,提供任务调度管理、内存管理、任务间同步通信、时间管理、服务中断等功能,执行效率高、占用空间小、实时性能好、扩展性强。
在文件系统支持方面,系统本身并不提供对文件系统的支持,因为 μC/OS-II 是面向中小型嵌入式系统的,即使它包含了所有功能,编译后的内核也小于 10 KB。但是,μC/OS-II 具有良好的扩展性能,可以根据需要添加到文件系统中。
在硬件支持方面,μC/OS-II 可以支持目前大部分流行的 CPU,μC/OS-II 由于内核本身较小,裁剪后的最小代码可以达到 2KB,所需的最小数据 RAM 空间为 4 KB,并且 μC/OS-II 的移植相对简单,只需要修改与处理器相关的代码。
综上所述,μC/OS-II 是一款简单、功能齐全、实时的嵌入式操作系统内核,非常适合没有 MMU 功能的 CPU。它需要非常少的内核代码空间和数据存储空间,具有良好的实时性、良好的扩展性,并且是开源的,互联网上有大量的数据和示例,因此非常适合移植到 stm32f103 CPU。
3、经济
eCos(嵌入式可配置操作系统)
它是一个可配置、可移植和开源的实时操作系统,适用于深度嵌入式应用程序。
最大的特点是配置灵活,采用模块化设计,核心部分由小组件组成,包括内核、C语言库和底层运行时包。
每个组件都提供了大量的配置选项(实时内核也可以作为选项提供),这些选项可以使用 eCos 提供的配置工具轻松配置,并且可以配置以满足不同嵌入式应用程序的需求。
eCos操作系统的可配置性非常强大,用户可以自行添加所需的文件系统。eCos 操作系统还支持目前流行的大多数流行的嵌入式 CPU,并且 eCos 操作系统可以在 16 位、32 位和 64 位等不同架构之间移植。
由于 eCos 的核心较小,裁剪后的最小代码大小为 10 KB,所需的最小数据 RAM 空间为 10 KB。
在系统可移植性方面,eCos 操作系统是可移植的,并且比 μC/OS-II 和 μClinux 更容易。
综上所述,eCos 最大的特点是配置灵活,支持不带 MMU 的 CPU 移植,开源且具有良好的可移植性,也适合移植到 stm32 平台上的 CPU。但是,eCOS的应用不是太广泛,也没有μC/OS-II,数据也没有μC/OS-II。eCos 适用于一些对成本敏感的商业或工业嵌入式系统,例如消费电子领域的某些应用。
4、FreeRTOS
由于 RTOS 占用了一定数量的系统资源(尤其是 RAM 资源),因此只有少数实时操作系统(如 μC/OS-II、embOS、salvo 和 FreeRTOS)可以在小型 RAM 微控制器上运行。
与C/OS-II、embOS等商用操作系统相比,FreeRTOS操作系统是一个完全免费的操作系统,具有源代码公开、可移植、切割、调度策略灵活等特点,并且可以方便地移植到各种微控制器上运行,其最新版本为6.0版本。
FreeRTOS作为一款轻量级操作系统,提供任务管理、时间管理、信号量、消息队列、内存管理、录制功能等功能,基本可以满足较小系统的需求。
FreeRTOS 内核支持优先级调度算法,其中每个任务可以根据其重要性被赋予一定的优先级,并且 CPU 始终让处于就绪状态的优先级最高的任务首先运行。
FreeRT0S 内核还支持轮换调度算法,系统允许不同任务使用相同的优先级,在没有更高优先级的任务就绪的情况下,同一优先级任务共享 CPU 使用时间。
FreeRTOS 的缺点:
与常见的μC/OS-II 操作系统相比,FreeRTOS 操作系统既有优点也有缺点。
它的缺点,一方面体现在系统的服务功能上,比如 FreeRTOS 只提供消息队列和信号量的实现,不能按照后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS 只是一个操作系统内核,需要扩展第三方 GUI(图形用户界面), TCP/IP协议栈、FS(文件系统)等来实现更复杂的系统,不像μC/OS-II,可以与μC/GUI一起使用,μC/FS、μC/TCP-IP等无缝组合。
5、mbed操作系统
开源嵌入式操作系统,ARM免费向所有厂商提供mbed操作系统,mbed提供了相对更系统、更全面的智能硬件开发环境。
主要特点:
为开发 IoT 设备提供通用操作系统基础,以解决嵌入式设计的碎片化问题。支持连接和设备管理的所有重要开放标准,以实现面向未来的设计。支持安全且可扩展的边缘设备,以支持新的处理能力和功能。通过自动电源管理解决复杂的能耗问题。
主要特点:
它快速、强大且高度安全,专为大规模生产而设计,可以离线开发或在网页上编辑。
6、RTX的
它是ARM的嵌入式实时操作系统,以标准C结构编写,并使用RealView编译器编译。不仅仅是一个实时内核,还是一个丰富的中间层组件,自由开放的代码。
主要特点:
启动和停止任务(进程),以及支持进程通信,例如任务同步、共享资源(外围设备或内存)的管理以及任务之间的消息传递。开发者可以使用基本函数启动实时运行器、启动和结束任务,以及在任务之间转移控制权(轮换调度)。开发人员可以确定任务的优先级。
主要特点:
支持时间片、抢占式和协作式调度。任务数量没有限制,每个任务的优先级为 254。无限数量的信号量、互斥信号量、邮件邮箱和软计时器。支持多线程和线程安全操作。您可以使用基于 MDK 对话框的配置向导轻松配置 MDK。
7、VxWorks公司
由WindRiver于1983年设计和开发,是一种嵌入式实时操作系统(RTOS),具有硬实时性、确定性和稳定性,以及航空航天和国防、工业、医疗、汽车、消费电子、网络等行业所需的可扩展性和安全性。
主要特点:
支持可预测的任务同步机制、支持多个任务之间的通信、优化内存管理以及操作系统的行为(中断延迟、任务切换、驱动程序延迟等)是可知和可预测的。实时时钟服务+停电管理服务。
主要特点:
具有高性能的操作系统内核Wind(实时性能好,可切)友好的开发调试环境,兼容性好,支持多种开发和运行环境
8、QNX公司
它诞生于 1980 年,是一款符合 POSIX 规范的商用类 Unix 嵌入式实时操作系统。
主要特点:
倍数
任务可以在同一台计算机上同时安排,多个用户可以共享一台计算机,这些用户可以通过多个终端向系统提交任务,与 QNX 进行交互。
主要特点:
核心仅提供进程调度、进程间通信、底层网络通信、中断处理四种服务,其进程在独立的地址空间中运行。所有其他操作系统服务都是作为协作用户进程实现的,因此 QNX 核心非常小(在 QNX 4.x 中约为 12Kb),并且运行速度极快。
9、纳特克斯
NuttX 是一个实时嵌入式操作系统 (Embedded RTOS),其第一个版本由 Gregory Nutt 于 2007 年在宽松的 BSD 许可下发布。
主要特点:
它可以构建为开放、扁平的嵌入式 RTOS,也可以构建为具有系统调用接口的微内核。可轻松扩展至新的处理器架构、SoC 架构或板级架构。实时、确定性、支持优先级继承。BSD 套接字接口。优先级管理的扩展。具有地址环境的可选任务(进程)。
主要特点:
核心部分由小组件组成,包括内核、C 语言库和低级运行时包。每个组件都提供了大量的配置选项(实时内核也可以作为选项提供),这些选项可以使用 eCos 提供的配置工具轻松配置,并且可以配置以满足不同嵌入式应用程序的需求。
10.都江堰操作系统(DJYOS)。
(注:网友提醒都江堰操作系统官网,STM32的F4、F7没有调校)。
都江堰操作系统,简称DJYOS,得名于一个伟大的水利工程:都江堰。
与传统操作系统不同,djyos 不是基于线程,而是基于事件,这种调度算法允许程序员摆脱编写模拟计算机执行过程的程序的思维方式,而是以人类感知世界的方式编写应用程序,就好像 VC 被引入嵌入式编程一样。
DJYOS的调度算法让程序员摆脱了线程和进程的束缚,DJYOS没有关于线程的API,对线程一无所知的程序员可以在DJYOS畅地编写应用程序。
DJYOS操作系统在调度方面是以事件为中心的,这是一种调度策略,允许程序员根据人类认知的习惯而不是计算机的习惯进行编程。
11、Alios事物
根据知名媒体嵌入式操作系统RTOS的说法,AliOS Things是AliOS系列下面向物联网领域的高度可扩展的物联网操作系统。AliOS Things将致力于构建具有极致性能、极简开发、云集成、丰富组件、安全防护等关键能力的云化一体化物联网基础设施,并支持终端设备接入阿里云链接,可广泛应用于智能家居、智慧城市、新出行等领域。
点评:阿里系统,背靠阿里资源进军物联网市场,芯片+模组厂商合作,是一个非常强大的玩家,但这也是它最大的劣势!
12、华为LiteOS
华为LiteOS是华为面向物联网领域打造的一款轻量级物联网操作系统,为开发者提供轻量级低功耗、快速启动、互联互通、安全等关键能力的“一站式”完整软件平台,有效降低开发门槛,缩短开发周期。
点评:华为系统,但其开源程度相对较低,它主要用于华为自己的产品,被一棵大树覆盖。
13、RT-Thread
嵌入式操作系统RTOS介绍,RT-Thread是集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊普祥先生领导并由开源社区开发,RT-Thread也是一个完整而丰富的组件,高度可扩展、易于开发、超低功耗、高安全性的物联网操作系统。RT-Thread 具有 IoT OS 平台所需的所有关键组件,例如 GUI、网络堆栈、安全传输、低功耗组件等。经过11年的累积发展,RT-Thread已成为国内最大的嵌入式开源社区,已广泛应用于能源、汽车、医疗、消费电子等行业,累计安装基数超过2000万台,成为国内最成熟、最稳定的开源RTOS,装机容量最大。
点评:中国最有可能成为TOP1,优势在于成分丰富,中立位置!缺点是教程文档与 freertos 等的比例仍然很弱。
嵌入式操作系统 RTOS 的推荐学习资源:
1. 文档:
2. 书籍:《嵌入式实时操作系统:RT-Thread 设计与实现》、《基于 STM32 的 RT-Thread 内核实现和应用开发实用指南》
“。
14、SylixOS
嵌入式操作系统RTOS介绍,SylixOS是一款开源的跨平台大规模实时操作系统(RTOS),SylixOS诞生于2006年,经过十多年的持续发展,SylixOS已成为国内最全面的操作系统之一。目前产品和项目应用案例众多,行业涉及航空航天、军防、轨道交通、智能电网、工业自动化等诸多领域。SylixOS 完全兼容 POSIX,开源社区丰富的自由软件移植非常方便。
点评:这也很有意思,从2006年开始,吃军餐,最近一两年才出现。它的实力不容小觑!
参考网站:
当然,RTOS也不仅限于以上,如果有相关信息,会继续推送给大家。
引用:
[1] 嵌入式操作系统 RTOS。“国产嵌入式操作系统能不能用,就看这5个了!”
[2]国勋新伟.“那些实时和高效的物联网操作系统的清单”。
[3] 百度百科