XLinux是由美国网虎公司推出,主要开发者是陈盈豪。他在加盟网虎几个月后便开发出了基于 XLinux的、号称是世界上最小的嵌入式Linux系统,内核只有143KB,而且还在不断减小。XLinux核心采用了“超字元集”专利技术,让 Linux核心不仅可能与标准字符集相容,... |
Bitrig 是一个免费、快速、安全的,高度可移植的类 Unix 开源操作系统。Bitrig 是基于 OpenBSD 的一个操作系统分支。其目的是基于 OpenBSD 提供一个非常精简的系统,可运行在嵌入式平台上。
OpenWSN: 开源的无线传感器网络基础平台(事件驱动的操作系统内核,硬件的组件化封装,协议栈,示例)
OpenWSN与 TinyOS的比较
相同点:
* 都是事件驱动
* 都是组件架构
* 同样都提供了非常丰富的组件
不同点:
* OpenWSN基于 ANSI C语言开发,TinyOS基于nesC,语法不同;
* OpenWSN采用C容易上手,学习曲线短,但TinyOS采用nesC 不受C语言语法的制约,提供了更加优雅的组件组装方式;
* OpenWSN强调对工业界传统遗留资源(现有代码、员工和员工的经验与技能)的保护与利用,TinyOS诞生自学术界,更多的是一个创新想法的实验温床,工业界接受程度有限;
* OpenWSN实施严格的分层设计与实现,强调先分好层然后在层内再区分组件;TinyOS因为过于强调组件而在层次上不够明显,特别是在早期1.0版本中;
* 因为采用 ANSI C,所以OpenWSN移植性非常好,可被轻松移植到绝大部分资源受限的系统中,今天不支持C编译器的微控制器非常少见,且可充分利用厂家提供的C编译器或第三方提供的开发环境进行优化;而nesC的移植相对困难,且与GCC绑定,撇开nesC的移植不谈,对GCC不支持的硬件就无法运行TinyOS。
* OpenWSN 可以作为母体操作系统的一个任务运行,母体操作系统可以是uCOS, uCLinux or 其他OS。向一个母体操作系统移植与向一个新硬件平台移植遵循类似的思路;而TinyOS自成体系,要想与其他操作系统融合,利用其它操作系统的功能就非常困难;
* OpenWSN取消了TinyOS中Configurator配件的概念,组件的组装过程隐含于组件初始化过程中,TinyOS中刻意引入配件强调了组装的概念但事实上显得有些多余。
* OpenWSN的osx kernel,提供了事件调度,未来将进一步扩展到soft real time schedule
* OpenWSN中osx中的事件为单一类型,不象TinyOS中那样设计出两种不同类型事件(普通的事件和中断事件),从而简化了组件的开发。中断事件在开发实践中是不太好处理,如代码在中断态运行必然要求有辅助的各种保护措施以及中断态和非中断态之间的联络沟通机制,事实上复杂化了应用层的开发。中断事件在OpenWSN中尽量在HAL 层封装掉。即使不被封装掉,也往往是以listener方式对外提供,这在使用上比区分事件类型更清楚。
* OpenWSN的组件设计更加强调被动性,即强调一个组件应以服务方式运行,被动接受外部输入事件然后做出响应。当然,OpenWSN并不要求所有组件必须如此。
RS-RTOS
RS-RTOS是一个强实时、深度嵌入式系统。目标是为强实时需求(如工业控制、汽车电子)的嵌入式系统提供基础运行平台。项目的研究重点是在资 源受限系统上实现最大化实时性能。RS-RTOS借鉴精简指令集(RISC,CPU的一种设计模式)的成功经验,提出精简功能集的指导思想。其核 心是对现有实时嵌入式系统进行精简,保留应用频繁的服务,通过优化精简功能集,从而获得强化的实时性能。RS-RTOS具备许多工业级特性,这些特性能有效地降低产品的开发成本,缩短开发周期,提高产品的竞争力。
目前,RS-RTOS将开展的以下几个研究方向:
- 移植,驱动
- NET网络系统
- GUI图形系统
- FS文件系统
- 文档,应用平台
ChibiOS
Chibi这个词在日语中是“小孩”的意思,因此ChibiOS/RT (ちびOS/RT)表示小型实时操作系统。
ChibiOS特性- 自由软件,GPL3许可证。稳定发行版包含一个GPL的例外条款。
- 为实时应用设计。
- 易于移植
- 抢占式调度
- 128个优先级。允许多个线程位于同一个优先级。
- 对于同一优先级的线程使用轮转调度。
- 提供线程,虚拟时钟,信号量,互斥锁,condvars,事件标志,消息,邮箱,I/O队列。
- 在编译时无静态设置,因此不需要为上面的对象配置最大数量。
- 包含有PC模拟器,可以在PC中使用MinGW来开发。时钟,I/O通道以及其他硬件资源在Win32处理器上模拟,应用程序代码不需要考虑这些问题。有可用的MinGW范例。
- 不需要内存分配,所有内核结构均是静态的并且通过声明来分配。
- 可选的,线程安全的堆分配子系统。
- 可选的,线程安全的内存池分配子系统。
- 阻塞与非阻塞的I/O通道,包含超时与事件产生能力。
- 最小系统需求:当使能所有选项并且打开速度优化时约为8KB的ROM。如果禁用了某些不使用的子系统并且打开代码大小优化,可以缩小到2KB以下。
- 差不多全部使用C来编写,还有小量移植需要的汇编代码。
kboot
kboot本质上是个小型Linux操作系统,但功能却是个boot loader,何解?kboot本身提供简单的系统工具,支持档案与网络操作,可自外界取得kernel image或其它档案,进而kboot利用了kexec的机制,让Linux kernel可快速重新启动,于是具备boot loader的功能。
kexec是一组新的系统呼叫,包含在2.6 kernel中 (视支持架构而定),搭配其user-space的工具kexec-tools,则可在既有的Linux kernel (支持kexec系统呼叫) 中加载其它的kernel (不需要有kexec支持),并给予必要之参数或档案,如kernel command line与initrd等。
目前,kexec的硬件支持不限定x86,包含ARM与PPC都已有patch现身。那么,如此的机制到底有什么价值呢?以往的boot程序是很单纯,清一色就是boot loader加载kernel,然后跳到user-mode或者是特定的工作,但现在的系统设计往往不是单一硬件、单一架构就可胜任的,诸如RAID或高负载的备援系统设计,都需要相当繁复的规划,很显然就非普通的boot loader可以应付,也很难修改Etherboot去圆满符合需求,这时候,我们联想到Linux,搭配到上述的kexec,不就是最美妙的boot loader吗?在加载新的kernel之前,我们可作任何Linux能做的事情,像是加载firmware并进行设定、挂载NFS、挂载NTFS (透过Linux-NTFS)、... 等等,只要能提供新kernel给kexec-tools工具作加载,最后再透过kexec系统呼叫,就可完成这个「功能强大的boot loader」的终极任务。
kboot就是这样的概念验证实做品,使用的情境相当多元。举例来说,kboot想进行远程开机 (Diskless),但只有Wireless LAN或3G network可用,这时候就挂载对应的kernel module (包附在kboot中),然后透过user-space的应用程序进行设定,等待联机建立并确保档案撷取成功,接着就在装置上执行自远程取得核心。另一种情境也很有趣,以往Linux distribution都得作通用性与最佳化的妥协,前者往往得将系统划分诸多核心模块与大量的设定程序,后者往往得针对硬件作多次尝试,那么,透过kboot可先启动generic kernel,然后进行硬件侦测,参考所需的硬件与最佳化组态,重新编译核心,最后将该核心加载,而这个过程可透过一些设计得当的效能评估工具,一次又一次的重复自动微调,有别于以往的boot loader。
后者给予我们极大的想象空间,当我们在新的硬件进行核心与外围移植时,的确可先把能运作的最低限度核心置入kboot,然后再从不同的开发分支取得新核心并启动,而这些过程都是透明的,而且不需要烧录到传统储存装置中,只要资源允许,可在RAM中做到繁琐的事情。
pSOS
ISI公司已经被WindRiver公司兼并,现在pSOS属于WindRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需 的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。
pSOS是一个由标准软组件组成的,可剪裁的实时操作系统。它分为内核层、系统服务层、用户层。
1. 内核层
pSOS内核负责任务 的管理与调度、任务间通信、内存管理、实时时钟管理、中断服务;可以动态生成或删除任务、内存区、消息队列、信号灯等系统对象;实现了基于优先级的、选择 可抢占的任务调度算法,并提供了可选的时间片轮转调度。pSOS Kernel还提供了任务建间通信机制及同步、互斥手段,如消息、信号灯、事件、异步信号等。
pSOS操作系统在Kernel层中将与具体硬件有 关的操作放在一个模块中,对系统服务层以上屏蔽了具体的硬件特性,从而使得pSOS很方便地从支持Intel 80x86系列转到支持MC68XXX系列,并且在系统服务层上对不同应用系统不同用户提供标准的软组件如PNA+、PHILE+等。
2. 系统服务层
pSOS系统服务层包括PNA+、PRPC+、PHILE+等组件。PNA+实现了完整的基于流的TCP/IP协议集,并具有良好的实 时性能,网络组件内中断屏蔽时间不大于内核模块中断屏蔽时间。PRPC+提供了远程调用库,支持用户建立一个分布式应用系统。PHILE+提供了文件系统 管理和对块存储设备的管理。PREPC+提供了标准的C、C++库,支持用户使用C、C++语言编写应用程序。由于pSOS内核屏蔽了具体 的硬件特性,因此,pSOS系统服务层的软组件是标准的、与硬件无关的。这意味着pSOS各种版本,无论是对80X86系列还是MC68XXX系列,其系 统服务层各组件是标准的、同一的,这减少了软件维护工作,增强了软件可移植性。每个软组件都包含一系列的系统调用。对用户而言,这些系统调用就象一个个可 重入的C函数,然而它们却是用户进入pSOS内核的唯一手段。
3. 用户层
用户指的是用户编写的应用程序,它们是以任务的形式出现的。任 务通过发系统调用而进入pSOS内核,并为pSOS内核所管理和调度。pSOS为用户还提供了一个集成式的开发环境(IDE)。pSOS_IDE可驻留于 UNIX或DOS环境下,它包括C和C++优化编译器、CPU和pSOS模拟仿真和DEBUG功能。
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |