【xenomai3内核解析】系列文章大纲

简介: 该博客系列详细解析了Linux实时操作系统框架Xenomai,包括实时操作系统的概念、Linux为何非实时、嵌入式实时Linux方案等。内容涵盖Xenomai内核构建、组件结构、源码介绍、实时性测试及接口应用。此外,深入探讨了双核基石IPipe、系统调用、时间子系统、任务管理、同步与互斥、内存管理、信号处理、实时IPC、POSIX IPC、实时驱动模型RTDM、Rtnet、用户态实时库libcobalt和实时性能优化等方面。适合对Linux实时系统感兴趣的读者学习研究。

xenomai3内核解析

本博客为本人学习linux实时操作系统框架xenomai的一些记录,主要剖析xenomai内核实现,以及与linux相关的知识。为方便读者定位具体文章,现列出本博客大纲,后续会陆续将大纲中缺少部分填充完整,感兴趣的读者敬请关注!

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/

第一章 认识xenomai

1. 什么是实时操作系统(RTOS)

什么是实时

实时的分类

常见的RTOS

latency和jitter

2. 为什么linux不是实时操作系统

3. 嵌入式实时linux概述

3.1 方案一:直接修改现有Linux代码
3.2 方案二:双内核
3.3 方案三:多核异构+实时虚拟化

第二章 构建xenomai内核

1.ARM/X86架构xenomai安装教程

第三章 xenomai初探

1.xenomai 3组成结构

2. xenomai 3源码介绍

3.xenomai实时性测试

3.1 latency和jitter
3.2 串口实时性测试
3.3 GPIO实时性测试

4.xenomai各种接口应用编译

5.xenomai proc文件信息介绍

5.1 实时外设中断信息
5.2 查看实时核信息
5.3 调度与任务状态
……

第四章 双核基石ipipe

----X86架构ipipe接管中断处理----

1. ipipe简介

2. X86中断向量与APIC

3 X86 linux异常处理与ipipe接管中断/异常

----arm架构ipipe接管中断处理----

4. GIC驱动

5. arm中断处理与ipipe接管中断/异常

6. linux中断处理流程

7. ipipe中断管理机制

7.1 ipipe domain管理

7.2 ipipe初始化流程

7.3 ipipe 快/慢速路径中断处理

7.4 RTDM实时驱动中断注册

8. 双核异常处理(以X86 page-fault为例)

9. ipipe移植概述

第五章 系统调用

1. 双核系统调用(一)

2. 双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务

3. 双核系统调用(三)--如何为xenomai添加一个系统调用

4. ipipe对系统调用的处理

第六章 时间子系统

1. linux时间子系统简介

2. xenomai时间子系统

2.1 xnclock

2.2 xntimer

2.3 ipipe event设备管理

2.4 xenomai时钟系统初始化流程

2.4.1 X86 timer接管流程

2.4.2 ARM timer接管流程

2.5 xenomai内核下Linux时钟工作流程

2.4 autotune及latencies gravity简述

2.6 其他:解BUG-xenomai内核与linux内核时间子系统之间存在漂移

第七章 任务管理

1. linux任务管理

1.1 linux任务描述task_struct

1.2 linux任务创建

1.3 linux任务调度

2. xenomai任务管理

2.1. 内核实时线程描述xnthread

2.2. 用户实时线程描述cobalt_thread

2.3. 调度策略与调度类

2.4. nksched

2.5. 内核实时线程创建

2.6. 用户态实时线程创建

2.7. 实时调度类任务管理

3. 双核间任务迁移

第八章 同步与互斥

1. 优先级倒置

2. xenomai内核对象管理器xnregistry

3. 资源同步互斥机制xnsynch

第九 内存

1. linux内存管理

2. xenomai 实时内存管理

第十章 信号

1. 信号signal(一)---Linux信号机制

2. 信号signal(二)---xenomai信号处理机制

第十一章 实时IPC

1. 实时IPC概述

2. 实时与非实时通讯XDDP

xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程

xenomai与普通linux进程之间通讯XDDP(二)--实时与非实时关联(bind流程)

xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互

3. 实时与实时通讯IDDP

4. 实时与实时通讯BUFP

第十二章 POSIX IPC

1. POSIX信号量

2. POSIX消息队列

3. ....

第十三章 实时驱动模型RTDM

1. 协议类设备

这XDDP系列文章内有所提及:xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程

XDDP文章以XDDP设备为例,详细解析了xenomai实时设备驱动框架,梳理了RTDM与linux各数据结构之间的关系,希望你能仔细阅读。

2. 字符类设备

3.xenomai用户态实时驱动框架UDD(User-space Device Driver framework)

第十四章 Rtnet

1. 【机翻】RTnet – 灵活的硬实时网络框架

2. 关于RTnet 使用和开发中的一些记录

3. ....

第十五章 用户态实时库libcobalt

1. 【原创】linux实时应用如何printf输出不影响实时性?

第十六章 xenomai实时性能优化

1. 有利于提高xenomai 实时性的一些配置建议

1.1 实时性的影响因素

2. arm平台xenomai与VxWorks实时性对比

(1).定时抖动对比:xenomai与VxWorks实时性对比(Jitter对比)

(2).资源强占上下文对比:xenomai与VxWorks实时性对比(资源抢占上下文切换对比)

3.基准测试

(1). xenomai x86基准测试
(2). xenomai x86中断响应时间测试

第十六章 其他

x86平台下一次解bug过程: 解BUG-xenomai内核与linux内核时间子系统之间存在漂移
X86_64/X86 GNU汇编: X86_64/X86 GNU汇编、寄存器、内嵌汇编

参考

xenomai官网
xenomai源代码
xenomai3在线文档:https://v3.xenomai.org
xenomai4在线文档:https://v4.xenomai.org

目录
相关文章
|
15天前
|
机器学习/深度学习 人工智能 负载均衡
深度解析:Linux内核调度策略的演变与优化
【5月更文挑战第30天】 随着计算技术的不断进步,操作系统的性能调优成为了提升计算机系统效率的关键。在众多操作系统中,Linux因其开源和高度可定制性而备受青睐。本文将深入剖析Linux操作系统的内核调度策略,追溯其历史演变过程,并重点探讨近年来为适应多核处理器和实时性要求而产生的调度策略优化。通过分析比较不同的调度算法,如CFS(完全公平调度器)、实时调度类和批处理作业的调度需求,本文旨在为系统管理员和开发者提供对Linux调度机制深层次理解,同时指出未来可能的发展趋势。
|
17天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【5月更文挑战第29天】 在现代操作系统中,尤其是类Unix系统如Linux中,进程调度机制是保证多任务高效运行的核心。本文将深入探讨Linux操作系统内核的进程调度器——负责管理CPU资源分配的关键组件。我们会详细分析其调度策略、调度器的演进及其在多核处理器环境下的表现。通过剖析进程调度器的工作原理和设计哲学,旨在为读者提供一个清晰的视角来理解这一复杂的系统功能。
24 0
|
1月前
|
API 调度
xenomai内核解析--双核系统调用(三)--如何为xenomai添加一个系统调用
本文介绍了如何在Xenomai中添加自定义系统调用`get_timer_hits()`,该调用用于获取CPU定时器中断次数。首先,在`syscall.h`中定义127号系统调用,并在`clock.h`和`clock.c`中声明和实现该函数。接着,更新libcobalt库以包含新接口。最后,提供了一个示例应用,演示如何在实时任务中使用此系统调用。编译内核和库后,运行示例程序显示定时器中断次数,体现了Xenomai的tickless特性。
39 1
|
1月前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
68 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
1月前
|
存储 Linux API
xenomai内核解析--双核系统调用(一)
本文介绍了Xenomai内核系统调用的实现,探讨了在Linux内核与Xenomai实时内核共存时,系统调用如何区分和交互。系统调用是用户空间与内核空间通信的关键,它提供了硬件抽象、系统稳定性、安全性和可移植性。在32位系统中,通过`int 0x80`指令触发,而在64位系统中,使用`syscall`指令。Xenomai通过I-pipe拦截系统调用,区分实时与非实时任务,并通过`cobalt_syscalls`表执行相应操作。文章还详细解析了系统调用表的生成和权限控制机制。
81 1
xenomai内核解析--双核系统调用(一)
|
1月前
|
消息中间件 调度 数据安全/隐私保护
xenomai内核解析--任务同步互斥机制(一)--优先级倒置
本文是关于Xenomai实时操作系统中资源管理和优先级倒置问题的概述。Xenomai使用`xnobject`和`xnregistry`管理任务间的同步互斥资源,如信号量、互斥锁等。资源管理涉及访问控制和资源保存,确保共享资源的正确调度。文章还介绍了优先级倒置现象,即高优先级任务因低优先级任务持有资源而被阻塞。为解决此问题,Xenomai采用了优先级继承策略,临时提升低优先级任务的优先级,以防止持续的优先级反转。文章后续将深入分析`xnsynch`模块和优先级倒置解决方案。
68 1
xenomai内核解析--任务同步互斥机制(一)--优先级倒置
|
1月前
|
机器学习/深度学习 算法 Linux
xenomai内核解析--实时内存管理--xnheap
Xenomai是一个实时操作系统(RTOS)层,用于Linux,旨在提供确定性的任务调度和服务。其内存管理机制包括一个名为xnheap的内存池,确保内存分配和释放的时间确定性,以满足硬实时系统的严格需求。
81 0
xenomai内核解析--实时内存管理--xnheap
|
1月前
|
Linux 测试技术 API
xenomai内核解析之xenomai初探
本文是关于Xenomai实时操作系统的初探,Xenomai是一个实时性增强的Linux系统,它通过实时内核和用户空间库提供硬实时性能。Xenomai 3主要由实时内核Cobalt、实时驱动模型RTDM、用户空间库libcobalt等组成,支持两种构建实时系统的方式:Cobalt和Mercury。Cobalt在内核空间与标准Linux内核并存,通过I-Pipe处理中断,确保实时任务的执行。Mercury则是通过修改Linux内核实现。
66 0
xenomai内核解析之xenomai初探
|
1月前
|
存储 消息中间件 Linux
xenomai内核解析--实时IPC概述
本文介绍了在Xenomai实时内核下,实时任务与非实时任务如何进行通讯
51 0
xenomai内核解析--实时IPC概述
|
1月前
|
算法 Linux 调度
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程
147 1
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(一)--实时端socket创建流程

推荐镜像

更多