要理解它们,就要看这些最终的概念是怎么来的,其实这些都是在不同资源(硬件)上处理不同场景问题所得的结果。
FreeRTOS一般跑在几十Mhz,几十KB的硬件上,比如Cortex-M系列MCU上,资源很有限,所以要考虑利用率。在RTOS之前,我们一般称裸机开发,这种一般都是大循环,甚至一个前后台系统(循环+中断),在开始前我有一些资料,是我根据网友给的问题精心整理了一份「freertos的资料从专业入门到高级教程」,
点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!
但都不支持实时的,这里实时的概念,可以理解位同时处理多种信号、事件了,比如按键信号过来、ADC采集的结果来了、发送一个串口数据等等,之前那种模式是轮流执行的,假设前一个任务没处理完,后面的必须等待,所以就要设计RTOS这种处理机制了,其实就是Task + 调度器机制了。这种跑在小的硬件资源上,本身作为一个系统但是设计又简单(核心只有调度器 + Task,相比Linux没有啥设备驱动支持,文件系统呀,GUI呀等),所以称之为轻量级了。
Linux相对来说概念“很大”,这里一般指嵌入式Linux了,一般跑在几百Mhz,几百兆甚至上G的内存上。因为Linux诞生时,它们的设计的目标直接就是冯诺依曼架构体系的计算机了,它是一个真正大而全的系统,要考虑的问题很多,比如多用户,多任务等,最后再结合场景,资源等考虑,就设计成这种为每个任务分配CPU时间片的分时系统了。