RT-Thread是国人(ffxz)写的一个实时性(RTOS)嵌入式操作系统。和著名的uCOS-II系统相似,但又很不一样!二者都是以抢占式任务调度的。但RT-Thread初次之外还可以以时间片轮转算法进行任务调度的。这在uCOS-II中是没有的,更具有特色的是RT-Thread采用的一种面向对象的编程思想。这是一种巧妙而有趣的编程方法,更接近于人类对事物的认知本性。
内核对象模型:
RT-Thread的内核对象模型是一种非常有趣的面向对象实现方式。由于C语言更为面向系统底层,操作系统核心通常都是采用C语言和汇编语言混合编写而成。C语言作为一门高级计算编程语言,一般被认为是一种面向过程的编程语言:程序员按照特定的方式把要处理事物的过程一级级分解成一个个子过程。
面向对象源于人类对世界的认知多偏向于类别模式,根据世界中不同物品的特性分门别类的组织在一起抽象并归纳,形成各个类别的自有属性。在计算机领域一般采用一门新的,具备面向对象特征的编程语言实现面向对象的设计,例如常见的编程语言C++,Java,Python等。那么RTThread既然有意引入对象系统,为什么不直接采用C++来实现? 这个需要从C++的实现说起,用过C++的开发人员都知道,C++的对象系统中会引入很多未知的东西,例如虚拟重载表,命名粉碎,模板展开等。对于一个需要精确控制的系统,这不是一个很好的方式,假于它人之手不如握入己手!面向对象有它非常优越的地方,取其精华(即面向对象思想,面向对象设计),也就是RT-Thread内核对象模型的来源。RT-Thread实时操作系统中包含一个小型的,非常紧凑的对象系统,这个对象系统完全采用C语言实现。在了解RT-Thread内部或采用RT-Thread编程时有必要先熟悉它,它是RT-Thread实现的基础。
到目前为止,RT-Thread还算是一个年轻的系统吧。但RT-Thread可以称得上优秀的,RT-Thread的团队也是一支优秀的团队。看看RT-Thread的简介吧:
RT-Thread的基本构架:
A. 实时内核
B. 虚拟文件系统
C. 轻型IP协议栈
D. Shell系统
E. 图形界面(GUI)
出色的Shell系统:
RT-Thread的shell系统——FinSH,提供了一套供用户在命令行操作的接口,可以用于调试、查看系统信息。由于系统程序大多数采用C语言来编写,FinSH命令行的设计被设计成类似C语言表达式的风格:它能够解析执行大部分C语言的表达式,也能够使用类似于C语言的函数调用方式(或函数指针方式)访问系统中的函数及全局变量。