实时Linux:PREEMPT_RT补丁应用实战

📚 共计 30 章节
01
实时系统概述
什么是实时系统 · 硬实时与软实时 · 工业控制/机器人/音频
概念场景
02
Linux实时性瓶颈分析
内核抢占点不足 · 中断延迟 · 自旋锁与优先级反转 · O(1)调度局限
内核延迟
03
PREEMPT_RT补丁简介
发展历史 · 主线实时演进 · 与主线内核关系
历史架构
04
PREEMPT_RT核心机制 (上)
中断线程化 · 实时互斥锁 · 优先级继承协议
IRQ线程rt_mutex
05
PREEMPT_RT核心机制 (下)
高精度定时器 · RCU实时化 · CPU隔离与亲和性
hrtimerRCU
06
环境准备
硬件要求 · 内核源码 · 交叉编译链 · 文件系统
x86/ARM工具链
07
获取PREEMPT_RT补丁
官方仓库 · LTS对应 · 完整性校验
补丁校验
08
打补丁与内核配置
patch命令 · 实时选项 · 配置检查清单
配置Fully Preemptible
09
编译与安装实时内核
make & modules · 安装内核 · GRUB · 验证
编译引导
10
实时性测试工具
cyclictest · hackbench · rt-tests套件
测试延迟
11
性能指标解读
最大/平均延迟 · 抖动 · 达标判定
指标Jitter
12
中断线程化实战
查看中断号 · 线程化 · 响应时间验证
IRQ亲和性
13
CPU隔离与隔离核
isolcpus · cpuset · 实时任务绑定
隔离绑核
14
优先级继承与PI futex
优先级反转复现 · PI futex · 锁持有时间
PIfutex
15
实时任务调度策略
SCHED_FIFO/RR · SCHED_DEADLINE · chrt命令
调度策略
16
内存锁定与页错误
mlockall · 防止缺页 · HugeTLB配置
内存大页
17
避免自旋锁与原子操作
自旋锁实时行为 · mutex替代 · 原子操作影响
原子
18
文件系统与I/O实时性
同步I/O · O_DIRECT · 避免写放大 · tmpfs/ramfs
I/O文件系统
19
网络栈实时性优化
中断亲和性 · NAPI/轮询 · RTnet简介
网络RTnet
20
电源管理与实时性
cpufreq影响 · 禁用动态调频 · C状态延迟
电源调频
21
调试与跟踪工具
Ftrace · perf · trace-cmd & kernelshark
跟踪可视化
22
常见问题排查
Oops/Panic · lockdep · 栈溢出检测
调试死锁
23
案例一:工业PLC控制器
需求分析 · 内核配置 · 任务设计 · 延迟测试
PLC工业
24
案例二:四轴飞行器飞控
传感器采集 · 控制环路 · PWM实时保障
飞控PWM
25
案例三:专业音频工作站
Jack框架 · 低延迟驱动 · xrun避免
音频Jack
26
案例四:机器人运动控制
EtherCAT主站 · 关节伺服 · 多核分配
机器人EtherCAT
27
PREEMPT_RT与Xenomai对比
架构差异 · API兼容 · 性能基准 · 选型建议
对比Xenomai
28
实时内核的维护与升级
版本升级 · 补丁冲突 · 回归测试
维护升级
29
实时系统的安全性与可靠性
看门狗 · 双机热备 · 故障注入
安全可靠性
30
总结与展望
PREEMPT_RT未来 · Rust for Linux · 实时计算趋势
展望Rust