全新 SylixOS 与 IDE 正式发布


  • 在经历的多次延期后,终于,终于,终于发布了!此版本 RealEvo IDE v3.9.5 包含了最新版本 SylixOS v1.8.3 操作系统。

  • SylixOS 研发至今,历时12年,从一个简单的调度器逐步发展成一个功能完备的大型实时操作系统,其支持的 CPU 体系结构丰富,性能强劲!本文将重点介绍新版本 SylixOS 及开发环境的几大亮点功能。

    首先介绍大家最为关心的 CPU 体系结构支持情况,截止本次发布,目前 SylixOS 支持的 CPU 体系结构包括:

    32位:ARM、MIPS、x86、PowerPC、SPARC、DSP(TI)、RISC-V

    64位:MIPS64、x64、RISC-V64、HR2(CETC)

    其中 ARM 包括:

    ARM920、ARM926,ARM1176,Cortex-A(5,7,8,9,15,17,53,57……),Cortex-R,Cortex-M 系列。

    目前在研预计年底前发布的 CPU 体系结构包括:

    32位:C-SKY(阿里中天微,现在叫“平头哥”半导体)

    64位:AARCH64(ARM)

    SylixOS 目前支持市面上主流的绝大多数处理器,这其中尤其加入了最新的开源指令集RISC-V,目前SylixOS全面支持 32 位与 64 位 RISC-V,同时 SylixOS Lite 版本还支持不包含 MMU 组件的 RISC-V 微控制器。

    另外针对航空航天这样的高精尖产业,新版 SylixOS 新增了 SPARC 体系结构的支持,并已应用到多个卫星项目中。SPARC 体系结构有很多宇航级版本,多用于卫星或其他航天器。太空环境中存在大量的宇宙射线,容易造成单粒子翻转。SylixOS 支持多余度安全启动和单粒子翻转检测,再加上 SPARC 处理器航天级体质,可以有效保障卫星安全运行。

    再来看看 SylixOS 内核的一些关键性升级,它们包括:调度器、自旋锁、多级优先级队列、I/O 长地址映射、更加精确的进程信息、多核 CACHE 同步屏障、PowerPC 非对齐修正、PowerPC 二级三级缓存支持、动态窗口调整、x86/x64 PAT 模式支持、SPARC 异常用户接口等。

    其中调度器主要实现了在 SMP 模式下 CPU 强亲和度调度(CPU 只运行有亲和度设置的线程),此调度模型配合任务亲和度调度可提高 SMP 系统实时性,同时优化了 SMP 调度策略,提高 CACHE 热度使线程运行速度更快;

    除 SPARC v8 由于 CPU 能力限制以外,SylixOS 在支持的全系列多核 CPU 上均支持排队自旋锁(其中 RISC-V 平台先于 Linux 移植实现),自旋锁等待策略更加公平合理,极大的提升了在 CPU 数量较多的 SMP 系统中的时间确定性。

    此版本 SylixOS 在内核对象级实现了多级优先级数据队列,在此之前绝大多数 RTOS 仅实现了双级优先级队列(普通、紧急)。多级优先级队列可使网络 QoS 设计变得异常简单,例如可在网络拥塞的情况下,保障实时语音服务清晰流畅;

    I/O 长地址映射支持物理与虚拟地址非对称 CPU 的 I/O MEM 映射逻辑,保证这些处理器可以正常的运行 SylixOS;

    增加多核 CACHE 同步屏障接口,可使多核系统启动以及 CPU 热插拔实现变得逻辑清晰实现简单;

    在进程运行时库中加入了针对不同 CPU 体系结构的内存访问优化函数库,可极大的提高进程环境内存访问速度;

    设备方面 SylixOS 本不计划再升级 ATA(IDE)驱动,因为 SATA 以及 NVMe 已全面取代了 ATA,但是从市场需求出发,此版本还是加入了 ATA 驱动的 DMA传输模式支持,使较为古老的 x86 或者低成本 Atom 工控机存储 I/O 速度有了几十倍的提升;

    另外内核网络统计信息更加详尽,可更加方便的定位网络性能瓶颈,为 SylixOS 网络性能相关配置提供量化依据,同时网络接口提高了多路 I/O 复用实现效率,唤醒 select、poll、epoll 等待线程更加快速;

    此版本 SylixOS 集成了 FDT(DTB、DTS)设备树文件分析接口,用户 BSP 可通过此接口分析 Bootloader 传递的设备树描述信息,方便实现编写一个BSP可兼容多个目标机板;

    在对 VxWorks 老应用兼容方面,新的 libVxWorks 接口兼容库增加了一些新的接口,涉及自旋锁、网络、原子操作、调度等方面,另外还可根据客户需要,支持类似 Target Shell 的功能;

    SylixOS 最新的功能框图如下:

  • 最后是网络方面,本次发布的 SylixOS 网络功能有了大幅度完善:

    1. 接口方面 SylixOS 内建 BSP 驱动包支持市面常见的 Intel、AMD、RTL 等 10/100/1000Mbps 网卡,同时还加入了 Intel 10Gbps 网卡的支持;

    2. 支持网络设备与网络接口一对多映射,一个网络设备可支持多个 IP 地址;

    3. 2 层路由方面加入虚拟网桥设备,支持完整的 L2 网络桥接分组交换;

    4. 3 层路由方面重构了整个网络路由算法,支持完整的 IPv4、IPv6 路由功能,并支持 BSD 标准的AF_ROUTE路由套接字;

    5. 组播路由方面支持了标准的组播路由,包括普通组播转发、IPIP 隧道、PIM 隧道等组播路由技术,并提供标准的虚拟组播路由接口;

    6. 全新的 NAT 支持动态与静态地址映射,静态映射方面支持外-内一对多映射方式,以实现内网服务器负载平均;

    7. 新增基于各种策略的流量控制功能,可根据不同的协议特征约束建立不同的流量控制策略;

    8. 网络安全方面支持新的远程登陆攻击检测功能,同时支持较为完善的规则过滤器,可根据规则过滤掉指定的数据包;

    9. 支持外挂网络安全防火墙模块,可有效抵御常见的网络攻击,例如:单播、组播、 广播网络风暴;报文重放攻击;ARP 欺骗攻击;ARP 泛洪攻击;TCP SYN、ACK 泛洪攻击等;

    10.新加入网络服务质量(QoS)管理,可以为不同的应用类型,提供不同传输质量的网络服务,支持多级优先级队列与可靠数据传输,配置灵活,功能完善,可以根据不同使用场景进行设定;

    11.SylixOS 提供的 KidVPN 工具功能更加完善,可支持 SylixOS 与 Linux 两种操作系统,同时支持 UDP 打洞等功能,有效降低 VPN 服务器转发压力。(https://github.com/acoinfo/KidVPN)

    12.高级路由方面支持完整 Quagga 路由框架,支持 RIP、RIPv2、RIPng、OSPFv2、OSPFv3、IS-IS 等自治网动态路由协议,支持带有 MD5 签名的 BGP 边界网关协议,支持 PIM-S 源地址 PIM 隧道组播路由协议,同时支持 Zebra 核心路由服务。

    从以上特性可以看出,这次发布的 SylixOS 在网络方面已进行了大幅度的增强,未来大家可以在高铁、物联网网关、工业路由器、企业路由器等领域看到众多基于 SylixOS 的网络设备。

    让我们再来了解一下 SylixOS 集成开发环境 RealEvo 的新特性。集成开发环境是操作系统与程序员之间的接口,基于一个操作系统的项目开发与维护难度,很大程度上取决于集成开发环境的易用性。

    新版本 RealEvo 集成开发环境与之前版本最大的区别首先在集成度上,新版本的 IDE 集成 gtest 单元测试框架、新的串口工具、远程文件编辑等功能,再加上之前已经实现的在线调试、设备仿真、测试分析等功能,RealEvo 可以说是一个完整的一站式开发平台,支持从裸机开发到操作系统、BSP、驱动程序、应用程序的开发,实现了从设计、开发、调试、测试到部署的无缝衔接。

  • 测试用例分析界面

    针对不同行业需求,新版本 RealEvo 集成开发环境提供了多种裁剪配置方案,配置界面如下图所示:

  • 用户可根据目标机的不同,选择不同的 SylixOS 基础配置模版,这些模版包括面向大型通用处理器、面向中型 MCU、面向紧凑型 MCU 以及面向 DSP 平台;

    Standard、Lite、Tiny、DSP 和 Lite DSP 四个版本,Standard 版本为标准版本,其涵盖了 SylixOS 的所有功能。Lite 和 Tiny 版本则针对处理器硬件资源有限目标机平台,裁剪掉一些在小型应用中很少使用的模块,使得编译后的镜像对资源的需求满足处理器资源限制。

    DSP 和 DSP Lite 版本则针对 DSP(如 TI C6000 系列处理器)。DSP 和 DSP Lite 的不同是 DSP 版本支持程序动态加载和在线调试,DSP Lite 则不支持,两个版本可满足不同情况的用户需求。

    值得一提的是,新版 RealEvo 还提供裸机开发支持,用户可以使用其开发裸机程序,给用户更多选择自由。在此基础上,用户还可以使用第三方 OS(如 FreeRTOS)作为模板创建工程,进而实现第三方 OS 下的应用开发。可以看出,SylixOS 及其开发环境都是以一颗非常开放包容的心在向前发展。

  • 这次不管是 SylixOS 还是 IDE 都升级和优化了相当多的功能,篇幅有限,无法一一介绍。最后,笔者想说因为“中美贸易战”以及“美国对中兴的制裁事件“,国产芯片与国产操作系统火了,新的芯片公司如雨后春笋一般涌出,但芯片与操作系统是需要长期积累的底层基础技术产品,风口过后,大浪淘沙,或许会有所收获。而笔者认为:优秀的产品不应只依赖某个风口存活,它会沿着自己的轨迹发展,如同 SylixOS 经过十数年沉淀,终究会闪耀光芒。

    2018年09月27日