网易首页 > 网易号 > 正文 申请入驻

嵌入式定制常用的实时Linux改造方案

0
分享至

根据实时性系统要求以及Linux的特点和性能分析,对标准Linux实时性的改造存在多种方法,较为合理的两大类方法为:直接修改Linux内核源代码、双内核法。嵌入式定制

1.直接修改Linux内核源代码

对Linux内核代码进行细微修改并不对内核作大规模的变动,在遵循GPL协议的情况下,直接修改内核源代码将Linux改造成一个完全可抢占的实时系统。核心修改面向局部,不会从根本上改变Linux内核,并且一些改动还可以通过Linux的模块加载来完成,即系统需要处理实时任务时加载该功能模块,不需要时动态卸载该模块。

目前kernel.org发布的主线内核版本还不支持硬实时。为了开启硬实时的功能,必须对代码打补丁。实时内核补丁是多方努力的共同成果,目的是为了降低Linux内核的延时。这个补丁有多位代码贡献者,目前由Ingo Molnar维护,补丁网址如下:www.kernel.org/pub/linux/kernel/projects/rt/。

在配置已经打过实时补丁的内核代码时,我们发现实时补丁添加了第4种抢占模式,称为PREEMPT_RT(实时抢占)。实时补丁在Linux内核中添加了几个重要特性,包括使用可抢占的互斥量来替代自旋锁;除了使用preempt_disable()保护的区域以外,内核中的所有地方都开启了非自愿式抢占(involuntary preemption)功能。这种模式能够显著降低抖动(延时的变化),并且使那些对延时要求很高的实时应用具有可预测的较低延时。

这种方法存在的问题是:很难百分之百保证,在任何情况下,GPOS程序代码绝不会阻碍RTOS的实时行为。也就是说,通过修改Linux内核,难以保证实时进程的执行不会遭到非实时进程所进行的不可预测活动的干扰。

2. 双内核法

实际上,双内核的设计缘由在于,人们不相信标准Linux内核可以在任何情况下兑现它的实时承诺,因为GPOS内核本身就很复杂,更多的程序代码通常会导致更多的不确定性,这样将无法符合可预测性的要求。更何况Linux内核极快的发展速度,使其会在很短的时间内带来很大的变化,直接修改Linux内核源代码的方法将难以保持同步。

双内核法是在同一硬件平台上采用两个相互配合,共同工作的系统核心,通过在Linux系统的最底层增加一层实时核心来实现。其中的一个核心提供精确的实时多任务处理,另一个核心提供复杂的非实时通用功能。

双内核方法的实质是把标准的Linux内核作为一个普通进程在另一个内核上运行。关键的改造部分是在Linux和中断控制器之间加一个中断控制的仿真层,成为其实时内核的一部分。该中断仿真机制提供了一个标志用来记录Linux的关开中断情况。一般只在修改核心数据结构关键代码时才关中断,所以其中断响应很小。其优点是可以做到硬实时,并且能很方便地实现一种新的调度策略。

为方便使用,实时内核通常由一套可动态载入的模块提供,也可以像编译任何一般的子系统那样在Linux源码树中直接编译。常用的双内核法实时补丁有RTLinux/GPL、RTAI 和 Xenomai,其中RTLinux/GPL只允许以内核模块的形式提供实时应用;而RTAI和Xenomai支持在具有MMU保护的用户空间中执行实时程序。下面,我们将对RTAI与Xenomai进行分析。

图1. RTAI(左)和Xenomai(右)实时内核在Linux中的分层结构

图1所示为RTAI和Xenomai两个实时内核分别与标准Linux内核组成双内核系统是的分层结构。可以看到两者有稍微不同的组织形式,与Xenomai让ADEOS掌控所有的中断源不同的是,RTAI拦截它们,使用ADEOS将那些RTAI不感兴趣的中断通知送给Linux(也就是,中断不影响实时时序)。这样混合过程的目的是提高性能,因为在这种情况下,如果中断是要唤醒一个实时任务,就避免了由ADEOS管理中断的开销。从这里可以看出,RTAI的实时性能应该是比Xenomai要好的。

RTAI(Real-Time Linux Application interface)虽然实时性能较好,但对ARM支持不够,更新速度极慢,造成项目开发周期长,研发成本高。

与RTAI相比,Xenomai更加专注于用户态下的实时性、提供多套与主流商业RTOS兼容的API以及对硬件的广泛支持,在其之上构建的应用系统能保持较高实时性,而且稳定性和兼容性更好;此外,Xenomai社区活跃,紧跟主流内核更新,支持多种架构,对ARM的支持很好。

Xenomai是Linux内核的一个实时开发框架。它希望无缝地集成到Linux环境中来给用户空间应用程序提供全面的、与接口无关的硬实时性能。Xenomai是基于一个抽象实时操作系统核心的,可以被用来在一个通用实时操作系统调用的核心上,构建任意多个不同的实时接口。Xenomai项目始于2001年8月。2003年它和RTAI项目合并推出了RTAI/fusion。

2005年,因为开发理念不同,RTAI/fusion项目又从RTAI中独立出来作为Xenomai项目。相比之下,RTAI项目致力于技术上可行的最低延迟;Xenomai除此之外还很着重扩展性、可移植性以及可维护性。Xenomai项目将对Ingo Molnar的PREEMPT_PT实时抢占补丁提供支持,这又是与RTAI项目的一个显著的不同。RTAI和Xenomai都有开发者社区支持,都可以作为一个VxWorks的开源替代。

Xenomai是基于Adeos(Adaptive Domain Environment for Operating System)实现的,Adeos的目标是为操作系统提供了一个灵活的、可扩展的自适应环境;在这个环境下,多个相同或不同的操作系统可以共存,共享硬件资源。基于Adeos的系统中,每个操作系统都在独立的域内运行,每个域可以有独立的地址空间和类似于进程、虚拟内存等的软件抽象层,而且这些资源也可以由不同的域共享。与以往传统的操作系统共存方法不同,Adeos是在已有的操作系统下插入一个软件层,通过向上层多个操作系统提供某些原语和机制实现硬件共享。应用上主要是提供了一个用于“硬件-内核”接口的纳内核(超微内核),使基于Linux环境的系统能满足硬实时的要求。

Xenomai正是充分利用了Adeos技术,它的首要目标是帮助人们尽量平缓地移植那些依赖传统RTOS的应用程序到GNU/Linux环境,避免全部重写应用程序。它提供一个模拟器模拟传统实时操作系统的API,这样就很容易移植应用程序到GNU/Linux环境中,同时又能保持很好的实时性。Xenomai的核心技术就是使用一个实时微内核来构建这些实时API,也称作“Skin”。Xenomai通过这种接口变种技术实现了针对多种传统RTOS的应用编程接口,方便传统RTOS应用程序向GNU/Linux的移植。图2描述了Xenomai的这种带Skin的分层架构。

图2. 带Skin接口的Xenomai分层结构

从图2可以看出,Xenomai系统包含多个抽象层:Adeos纳内核直接工作在硬件之上;位于Adeos之上的是与处理器体系结构相关的硬件抽象层(Hardware Abstraction Layer, HAL);系统的中心部分是运行在硬件抽象层之上的抽象的实时内核,实时内核实现了一系列通用RTOS的基本服务。

这些基本服务可以由Xenomai的本地API(Native)或由建立在实时内核上的针对其他传统RTOS的客户API提供,如RTAI、POSIX、VxWorks、uITRON、pSOS+等。客户API旨在兼容其所支持的传统RTOS的应用程序在Xenomai上的移植,使应用程序在向Xenomai/Linux体系移植的过程中不需要完全重新改写,此特性保证了Xenomai系统的稳健性。Xenomai/Linux系统为用户程序提供了用户空间和内核空间两种模式,前者通过系统调用接口实现,后者通过实时内核实现。用户空间的执行模式保证了系统的可靠性和良好的软实时性,内核空间程序则能提供优秀的硬实时性。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
男单16强全部产生,8强对阵出炉,小胖内战,张本智和大战林昀儒

男单16强全部产生,8强对阵出炉,小胖内战,张本智和大战林昀儒

小豆豆赛事
2024-06-01 01:39:24
《哆啦A梦》首日夺冠,黄子华新片9小时票房仅4万,成本超1800万

《哆啦A梦》首日夺冠,黄子华新片9小时票房仅4万,成本超1800万

靠谱电影君
2024-05-31 09:14:23
盘蛤蟆皮,袋鼠蛋蛋,现在的文玩圈也太“癫”了!

盘蛤蟆皮,袋鼠蛋蛋,现在的文玩圈也太“癫”了!

爱盘玩
2024-05-31 18:17:28
连巴铁都不敢想!外媒:歼20技术保密不准外销,但阿联酋不想放弃

连巴铁都不敢想!外媒:歼20技术保密不准外销,但阿联酋不想放弃

影孖看世界
2024-05-31 19:09:38
凭什么江浙沪女生也要彩礼就没什么人骂?

凭什么江浙沪女生也要彩礼就没什么人骂?

金哥说新能源车
2024-05-31 11:11:14
进入6月,财神降临,财运大好,三大星座横财不断

进入6月,财神降临,财运大好,三大星座横财不断

小晴星座说
2024-05-30 18:58:37
曾黎真漂亮

曾黎真漂亮

圈里的甜橙子
2024-05-31 14:44:06
凯尔特人vs独行侠!总决赛对阵及赛程出炉 塔图姆东契奇迎新王之争

凯尔特人vs独行侠!总决赛对阵及赛程出炉 塔图姆东契奇迎新王之争

元爸体育
2024-05-31 13:27:13
奥尼尔转发:詹姆斯有5项可能永远不会被打破的纪录 NBA国王

奥尼尔转发:詹姆斯有5项可能永远不会被打破的纪录 NBA国王

直播吧
2024-05-31 13:01:18
八路军夜袭阳明堡机场,战果如何,日本史料的记载令人吃惊

八路军夜袭阳明堡机场,战果如何,日本史料的记载令人吃惊

老黄有话
2024-05-10 08:00:02
女婿摸着丈母娘胸部拍照,疯狂发亲脸摸大腿合照,两人关系毁三观

女婿摸着丈母娘胸部拍照,疯狂发亲脸摸大腿合照,两人关系毁三观

嘿哥哥科技
2024-05-31 18:32:33
我国跌为美国第四大进口国,对美出口1519亿美元。前三名是这三国

我国跌为美国第四大进口国,对美出口1519亿美元。前三名是这三国

山股长
2024-05-31 09:10:02
经济日报:莫让沉睡账户成为风险账户

经济日报:莫让沉睡账户成为风险账户

财联社
2024-05-31 06:21:05
四川男子出差提前回家,妻子的举动让他生疑,网友:爱过过不过走

四川男子出差提前回家,妻子的举动让他生疑,网友:爱过过不过走

雅清故事汇
2024-05-30 19:13:33
使命终结!中国联通:6月12日起停止在线上办理5G通信壳业务

使命终结!中国联通:6月12日起停止在线上办理5G通信壳业务

快科技
2024-05-31 00:46:23
小梅带汪小菲到寺庙上香,帮汪家求财神,全力支持张兰事业

小梅带汪小菲到寺庙上香,帮汪家求财神,全力支持张兰事业

素素娱乐
2024-05-31 09:02:25
虚标!绿牌却有65L油箱,2100公里续航里程,秦L──大油箱的背后

虚标!绿牌却有65L油箱,2100公里续航里程,秦L──大油箱的背后

户外小阿隋
2024-05-31 14:12:07
惨死陈立人拳下的于轩一,在网络大军的舆论中中又死了一次

惨死陈立人拳下的于轩一,在网络大军的舆论中中又死了一次

祖源
2024-05-31 15:00:17
51岁陈慧琳成都街头献唱!路人视角下牙黄,牛仔裤拉链成为了焦点

51岁陈慧琳成都街头献唱!路人视角下牙黄,牛仔裤拉链成为了焦点

阿桥侃娱乐
2024-05-30 08:26:50
国内唯一不涉足娱乐圈的歌手,演唱会从不宣传却一票难求

国内唯一不涉足娱乐圈的歌手,演唱会从不宣传却一票难求

虾剪说剧
2024-05-31 01:40:02
2024-06-01 09:22:44
阿豪的科技见闻
阿豪的科技见闻
给大家分享科技有意思的内容
6文章数 52234关注度
往期回顾 全部

科技要闻

华为上新!余承东:问界6月销量将超4万辆

头条要闻

媒体:中美防长见面后 美方第一时间发新闻稿积极评价

头条要闻

媒体:中美防长见面后 美方第一时间发新闻稿积极评价

体育要闻

欧文:当老二怎么了?硬就行了!

娱乐要闻

白玉兰提名:胡歌、范伟争视帝

财经要闻

证监会:对恒大地产罚款41.75亿

汽车要闻

外观内饰升级/六项权益 全新哈弗H6开启预售

态度原创

本地
数码
时尚
教育
公开课

本地新闻

食味印象|歙县限定!枇杷味儿的清甜初夏

数码要闻

真正的咸鱼翻身!两年前的骁龙6 Gen 1怎么就翻红了

今年夏天,穿得越放松越时髦!

教育要闻

姥姥,这道题选什么呀?我怎么看不出来呢

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版