FreeRTOS, 于2003年由Richard Barry设计,并已被经成功移植到35种不同的微控制器上。FreeRTOS采用MIT许可证许可。

FreeRTOS着重在运行的简洁与速度,FreeRTOS有时会被视为是一个‘线程库’而非‘操作系统’

FreeRTOS一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。

由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。

FreeRTOS其不足之处, 一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方 面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。

FreeRTOS的设计小巧且简易,整个核心代码只有3到4个C文件,为了让代码容易阅读、移植和维护,大部分的代码都是以C语言编写,只有一些函数(多数是架构特定排班副程序)采用汇编语言编写。

FreeRTOS提供许多方法以实现多线程(threads)、多作业(task)、互斥锁(mutex)、信号量(semaphore)和软件计时器(software timer),有个为低耗电应用程序提供的无嘀嗒(tick-less)模式,线程的优先权管理也有支持,此外,FreeRTOS提供了四种存储器配置的模式:仅配置(allocate only)以非常简易但快速的算法进行配置与释放;搭配存储器合并,以较复杂但快速的算法进行配置与释放;搭配互斥保护,以 C 库配置进行配置与释放

FreeRTOS中没有一些像Linux、Microsoft Windows等典型操作系统具有的先进特征,例如设备驱动程序、先进存储器管理机制、用户管理和网络管理,管可以找到命令行接口和类似POSIX I/O 接口的插件。

参考:https://bbs.huaweicloud/blogs/200429

更多推荐

OS - freeRTOS vs Linux