Raw OS - 硬实时操作系统


LGPL
嵌入式
C/C++

软件简介

Raw-OS 起飞于2012年,Raw-OS志在制作中国人自己的最优秀硬实时操作系统。

Raw-OS 操作系统特性

内核最大关中断时间无限接近0us, s3c2440系统最大关中断时间实测0.8us。

支持idle任务级别的事件驱动,基于状态机机制(fsm+hsm),所有idle 级别的事件任务共享一个栈!

支持轻量级线程protothread。

支持普通任务级别的状态机和事件驱动机制。

支持tasklet以及workqueue,轻松降低系统最大关中断时间到最低,以及大大提高了系统的实时性。

支持task 256个优先级

支持task无限多个

支持semaphore无限多个

支持mutex无限多个,同时支持优先级继承算法和优先级置顶算法,当优先级反转发生的的时候。

支持mutex在优先级反转过程中的任务优先级逐步还原策略,以及解决了改变任务优先级等mutex带来的副作用。

支持3种queue模块(queue, queue_size, mqueue)无限多个, 支持queue的一对多群发,包含了mail box 的功能。

支持软件timer无限多个。

支持event无限多个。

支持task block 在任意queue 和semphore 上,同时支持and 和or 的处理。

调度算法采用双向链表就绪队列,省去位图,采用目前世界上最快的bits搜索算法。

支持动态监测所有任务栈空间大小,栈空间小于整体的12%。 系统马上报错。

任务能以FIFO和PRIO 两种方式block 在semphore, mutex, queue, 等等对象上。

采用目前最快的计算tick timeout 的算法。

内核状态机的转换机制非常健全。

同等优先级调度,支持时间片轮。

支持满足posix的标准调度SCHED_RR和SCHED_FIFO

支持posxi的pthread封装

支持整个内核配置成非抢占内核。

支持内核配置成非抢占内核, 追求最大的数据吞吐量。

支持block内存分配机制,适用于整块的内存分配,没有内存碎片.

支持byte内存分配机制,适用于任何体积大小的分配,有内存碎片,采用first fit 算法,支持临接空闲块的合并。

支持slab算法基于buddy。

支持基于大内存的分配page算法。

支持c库标准的malloc, calloc, recalloc,free.

支持发送消息的同时也发送消息长度(raw_queue_size)

支持满足posix标准的大级别消息算法mqueue(raw_mqueue)

极其丰富的的API功能,内核支持配置各种功能,最小内核2K。

支持 8位,16位,32位的cpu以及dsp。