FOS是一款全新的开源实时操作系统(RTOS)。支持优先级抢占,FIFO(先进先出),RR(时间片轮) 三种调度算法。
它具备高度轻便可移植性(移植到不同的硬件平台),代码清晰,模块化,低耦合,可读性强。 同时也适用于硬件资源非常紧缺的情况,可以裁剪内核为FSM(有限状态机),仅仅200B的内存 占用空间。
由于FOS底层对接了LINUX的用户栈,线程切换接口,心跳定时器,网络/dev/tap,用户可以在 linux平台上直接运行FOS,单步调试FOS,可以很方便清楚的看到FOS的线程调度,锁使用的具 体情况,极度高效学习操作系统原理。
功能:
- 支持多任务运行, 支持基于优先级任务调度,支持同等优先级FIFO调度。
- 支持message queue。
- 支持信号量, 支持互斥锁, 支持优先级置顶算法。
- 支持软定时器、延时函数。
- 支持一个int的bit个数的任务数。
- 支持0中断延迟时间。
- 简化整个软件框架。只用old_task和new_task维护任务切换。
- 系统支持优先启动任何任务,包括低优先级任务。
- 支持创建任务时指明是否可以运行。
- 支持shell组件。
- 支持uip协议栈。
- 支持文件系统。
相比其他RTOS优势:
- 调度算法采用速度最快的first bit search算法
- 用户接口采用posix
- 解决传统mutex优先级继承问题
- 采用中断上下部增加实时性
- 添加状态机框架满足应用软件设计需要
- 文件组织结构优化,比如所需的c文件只要包含一个头文件既可,避免头文件污染
快速搭建
下载源码到linux平台,直接make,不需要任何库依赖,FOS还支持scons的构建方式,可以直接
执行scons(系统需要安装scons),生成的fos就可以直接运行,因为用到了linux的NAT方式,执
行fos时候用sudo最高执行权限。所以只要系统支持make和gcc,就可以运行FOS。
源码结构
- kernel : 内核代码,包括线程管理,信号量,互斥锁,任务调度算法, 定时器,消息队列,设备管理, 内存管理, 事件驱动管理
- app : 用户层逻辑代码
- cpu : 芯片移植代码,包括线程栈,任务切换,定时器,中断,数据类型
- libc : 基本的C库
- middleware : 组建,包括key-value存储,shell命令行,UIP网络协议
- SConstruct and config.py : 构建系统工具
- start_or1ksim.sh : or1ksim芯片模拟器运行
文档
文档中心
贡献
杨善锦(Jim)
License: GPL.
任何问题欢迎联系 [email protected] or 微信 : dreamflyforever.