嵌入式实时linux
想做这方面的开发,要求实时性要好,最好API接口和通用linux没有很大差别.
介绍网上哪有资料看看?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
想做这方面的开发,要求实时性要好,最好API接口和通用linux没有很大差别.
介绍网上哪有资料看看?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
RTLinux,可以查一下相关资料和介绍
风河也有Linux开发包,不过是收费的
Vxworks有点贵,
rtlinux 要在实时任务下开发,相当于开发平台变了,很麻烦
风河 -----太贵了,没黄金,只有银子
自己改kernel吧
不是vxworks,风何有它自己的Linux
蒙娜visita,我忘了英文怎么拼了。
实时操作系统。
motorola公司的吧?也要MMMMMONEY
现有的著名的实时Linux实现包括RTLinux、RTAI和TimeSys。
1. RTLinux
RTLinux是著名的研究机构FSMLab研发的一款实时Linux,既有GPL和Free版本,又有商业版本。它使用的实现方式是子内核方法,即把Linux内核作为一个新实现的子内核的闲暇任务,子内核位于Linux内核和硬件抽象层之间,实时任务运行于子内核之上,只有当没有实时任务需要运行时,Linux内核才有机会运行。
特别是对中断的管理,它采用了一种软件的方式来处理Linux内的中断关闭,当Linux内核关闭中断后,并不是真正地屏蔽了硬件中断,相反,它使用了一个变量来保存Linux内核的中断标志位,Linux内核的开关中断只是影响了该变量,硬件的中断由子内核来接管,当Linux内核关闭了中断,子内核仍然可以响应任何中断,只是如果子内核不需要处理的中断才交给Linux内核来处理,如果Linux内核关闭了中断,子内核将记录该中断并在 Linux内核打开中断后提交它处理。
在RTLinux里,每一个实时任务都是内核线程,运行在内核空间,RTLinux提供了一套专门的机制来在实时任务和普通的Linux任务之间进行进程间通信。
这种子内核的实现提供了非常好的实时性,完全是一个硬实时的Linux。
2.TimeSys Linux
Timesys很早就发布了实时Linux的商业版以及GPL版,它采用了与RTLinux完全不同的实现方式。前面已经提到了标准Linux内核的实时限制,TimeSys Linux就是通过消除这些限制来达到实时性的。它把中断(IRQ)和软中断(softIRQ)全部线程化并赋予不同的优先级,实时任务可以有比中断线程更高的优先级,它使用Mutex替代spinlock来使得自旋锁完全可抢占。它也对调度器做了优化使它是O(1)的(注:因为使用2.4内核)。由于中断已经线程化了,很多中断关闭就没必要了,因而消除了很多中断关闭区域。它还实现了对CPU和网络资源的预定来改善实时性。后面将说的Ingo's RT patch就是借鉴这些思路来实现实时性的。
这种实现方式保持了全部的Linux应用编程模式,实时应用和普通的应用采用同样的编程方式,使用同样的API,只是实时任务需要明确指定自己的优先级与调度策略。但是这种实现方式也有弊病,那就是它满足硬实时性有一定的困难,因为即使中断关闭和不可抢占区大为减少,但是还是存在,一些中断还是无法线程化,如时钟中断等。
3. Ingo's RT patch
Ingo's RT patch是又一个Linux实时实现,它采用了与TimeSys完全相同的技术路线,而且有一些实现是基于TimeSys的源代码的,如IRQ和 softirq线程化。但是它与前面提到的两个实时实现不同的地方是,它可能并入到标准Linux内核(作者预见,可能并入到2.6.13或以后的某个版本中)。在最新的标准内核Linux 2.6.11中,已经出现了这个补丁曾经包含的部分代码,如IRQ子系统,那是IRQ和softirq线程化的基础,已经隐含了一些线程化的代码,如自愿抢占代码,那是2.4的低延迟补丁(low latency patch)和Ingo的一些自愿抢占代码以及Robert Love的锁分解补丁的集合,还有可抢占的大内核锁。
本系列第 2 部分将专门对Ingo's RT patch进行详细的解读。
http://linux.chinaunix.net/bbs/thread-1053344-1-2.html
针对Ingo's RT patch给点意见吧?