SylixOS是一款大型嵌入式实时操作系统,诞生于2006年,起初它只是一个小型多任务调度器,经过多年开发,SylixOS目前已经成为一个功能完善、性能卓越、可靠稳定的嵌入式系统软件开发平台。
与SylixOS类似的实时操作系统中,全球比较知名的有VxWorks(主要应用于航空航天、军事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)等。
SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,使得SylixOS在功能和具体性能上达到或超过了众多实时操作系统的水平,成为国内实时操作系统的最优秀代表之一。
SylixOS作为抢占式多任务硬实时操作系统,具有如下功能与特点:
- 兼容IEEE1003(ISO/IEC9945)操作系统接口规范;
- 兼容POSIX 1003.1b(ISO/IEC 9945-1)实时编程的标准;
- 优秀的实时性能(任务调度与切换、中断响应算法都是O(1)时间复杂度算法);
- 支持无限多任务;
- 抢占式调度支持256个优先级;
- 支持协程;
- 支持虚拟进程;
- 支持优先级继承和优先级天花板算法,防止优先级反转;
- 极其稳定的内核,很多基于SylixOS开发的产品都需要7×24小时不间断运行;
- 内核占用CPU率低;
- 柔性体系(Scalable);
- 核心代码使用C语言编写,可移植性好;
- 支持紧耦合同构多处理器(SMP),例如:ARM Cortex-A9 SMP Core;
- 独一无二的硬实时多核调度算法;
- 支持标准I/O、多路I/O复用与异步I/O接口;
- 支持多种新兴异步事件同步化接口,例如:signalfd、timerfd、eventfd等;
- 支持众多标准文件系统:TpsFS、FAT、YAFFS、RAMFS、NFS、ROMFS等;
- 支持文件记录锁,可支持数据库;
- 支持统一的块设备Cache模型;
- 支持内存管理单元(MMU);
- 支持第三方GUI图形库,如:Qt、Microwindows、emWin等;
- 支持动态装载应用程序、动态链接库以及模块;
- 支持扩展系统符号接口;
- 支持标准TCP/IPv4/IPv6双网络协议栈,提供标准的socket操作接口;
- 支持AF_ROUTE、AF_UNIX、AF_PACKET、AF_INET、AF_INET6协议域;
- 内部集成众多网络工具,例如:FTP、TFTP、NAT、PING、TELNET、NFS等;
- 内部集成shell接口、支持环境变量(与Linux操作习惯基本兼容);
- 内部集成可重入ISO/ANSI C库(支持80%以上标准函数);
- 支持众多标准设备抽象,如:TTY、BLOCK、DMA、ATA、GRAPH、RTC、PIPE等。
- 支持多种工业设备或总线模型,如:PCI、USB、CAN、I2C、SPI、SDIO等;
- 提供高速定时器设备接口,可提供高于主时钟频率的定时服务;
- 支持热插拔设备;
- 支持设备功耗管理;
- 内核、驱动、应用程序支持GDB调试;
- 提供内核行为跟踪器,方便进行应用性能与故障分析。