工业控制、工业网关、轨道交通、能源电力等场景,都需要一个运行稳定、可靠的“实时操作系统”。RT-Linux作为一款开源实时性操作系统,拥有实时性内核、开源、免费、功能完善等特性,很好地满足了工业场景需求。
本文基于触觉智能旗下瑞芯微RK系列开发板,历经240小时实测!展开RT-Linux实时性系统两大内核:PREEMPT_RT与Xenomai实时性数据测评!
RT-Linux内核简介
PREEMPT_RT是RT-Linux实时性内核补丁,通过增强内核抢占能力、将中断处理线程化、改造锁机制等方式,大幅降低系统延迟峰值(低至微秒级),减少 “不可抢占” 场景,使 Linux 能更好适配工业控制、机器人、自动驾驶等对实时响应要求严苛的场景,目前其核心功能已逐步整合到 Linux 主线内核,可通过配置直接启用。
Xenomai是一套为嵌入式系统设计的实时开发框架,通过 “双内核” 架构(在 Linux 内核旁运行实时微内核),为应用提供纳秒级别的硬实时响应能力,同时允许实时任务与 Linux 系统服务协同工作,广泛用于工业自动化、机器人、航空航天等对实时性要求极高的场景,支持多种硬件架构且兼容POSIX 实时接口。
测试主板:触觉智能旗下瑞芯微RK35XX系列开发板,包括RK3506、RK3562、RK3568、RK3576、RK3588。
软件测试工具:Cyclictest(通过串口工具命令操作)
RT-Linux系统-PREEMPT_RT内核测试
触觉智能RK3506、RK3562、RK3576、RK3568、RK3588五款开发板,分别在CPU空载、满负荷+核心隔离的三种情况下,运行指令连续测试24小时,数据如下:
RT-Linux系统-Xenomai内核测试
Xenomai与PREEMPT_RT测试方法一致,数据如下:
结论分析
在处理器性能差异的情况下,触觉智能RK3506(Linux6.1内核)实时性延迟竟超过了性能更优的RK3568(Linux5.10内核)表现。经验证主要有以下几点原因造成:
(1)调度器改进
Linux 6.1对调度器(如CFS)进行了多项优化,包括负载均衡算法改进(如公平组调度优化),减少了任务迁移延迟。
(2)中断线程化增强
Linux 6.1改进了线程化中断(IRQ threads)的优先级管理,确保高优先级中断能更快抢占低优先级线程。例如,irq_work_queue()的优化减少了中断处理延迟。
(3)锁机制优化
Linux 6.1引入了更细粒度的rtmutex锁优化,减少了RT任务在争抢锁时的等待时间。例如,通过“锁 stealing”机制避免无效的唤醒操作。
(4)Preempt-RT补丁版本
Linux 6.1集成了更新的RT补丁,修复了5.10的早期版本(如RK3568的5.10.209)的定时器竞争条件和优先级继承漏洞。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。