适用于Android的Linux rt-补丁?

时间:2011-09-05 20:10:12

标签: android linux-kernel real-time

是否有可能将Linux内核的rt-patch应用于android内核?

为什么? 这纯粹是一个研究项目。我可以在运行Android的汽车上安装仪表板,同时还控制汽车中的安全关键任务吗? Android本身是用于SC任务的,但如果我把它放在虚拟机管理程序上,我相信它可以完成。

7 个答案:

答案 0 :(得分:4)

非常重要的链接

正在进行的实时安卓研究。

http://code.google.com/edu/submissions/ncsu-rts/


以下博客讨论值得一读,

http://groups.google.com/group/android-kernel/browse_thread/thread/fbf7f94d80f5eb2c/4e9f6f4d22a40b36?pli=1

  

与任何Linux系统中的实时支持没有区别   你查看了Linux内核的实时补丁集吗?它   应该适用于Android内核而没有任何问题。

它说,你可以成功rt-patch的linux到android。

BTW,实时架构的定义是,

  

实时系统是计算正确性的系统   不仅取决于计算的逻辑正确性,而且   也是在产生结果的时候。如果时机   不满足系统的约束,据说系统失效   发生。

以上参考:http://www.ibm.com/developerworks/linux/library/l-real-time-linux/

那么,基本上为什么在这个宇宙中你想将rt-patch应用到android内核?


**刚刚发现* *

本文值得探讨,您可以在研究项目中找到要关注的链接。

http://users.ece.gatech.edu/~vkm/Android_Real_Time.pdf

答案 1 :(得分:3)

我不知道内核级别的细节,但我想你想创建一个RT Android版本。

关于这个愿望,我认为仅仅应用RT补丁并不意味着让你进入Android的实时版本。

特别是对于虚拟机,垃圾收集暂停涉及很多复杂性,这会阻止真正的实时行为。

E.g。查看JVM的实时规范。从最初提交到实际工作实施需要8年时间。

http://www.jcp.org/en/jsr/detail?id=1

总体来说......可能并且可能应用RT补丁,但结果不会做你可能会做的事情。

答案 2 :(得分:3)

如果我理解这个问题。你有一个非常关键的系统(比如汽车的制动辅助系统等),你想通过android(仪表板)中创建的漂亮的gui来控制/跟踪它吗?

我认为你应该总是从gui分裂关键系统。这也是在硬件层面上。因此,你可以做任何你想要的GUI,但是关键系统永远不会受到影响(通过花哨图等繁重的CPU负载......)因为它在它自己的硬件上运行。

所以你将拥有一个系统:汽车内部计算机(如今存在)和一个完全不同的系统:基于Android的漂亮GUI。

这两件事之间的沟通应该尽可能简单,已经有很多与内部计算机沟通的标准,它们大多依赖于品牌(例如:VAG com)。

答案 3 :(得分:2)

正如其他人所说,没有理由不能将RT和Android补丁同时应用于Linux内核。但是否这对你有用取决于你想要做什么。

您无法获得具有完整API支持的实时Android应用程序。但是,您应该能够在C中编写实时本机应用程序。请参阅documentation以编写本机活动。您必须非常小心,不要对Java进行任何API调用(由于垃圾收集的可能性,对于初学者而言) - 甚至可能是许多Linux系统调用 - 来自您打算在其中执行的线程实时的方式。就像任何真正的实时系统一样,大部分工作都取决于你。

每当kernel.org重新上线时,请查看RT wiki

答案 4 :(得分:2)

如果您的目标确实只是用RT补丁引导Android内核,那么如果RT补丁支持运行内核的设备的体系结构,那么这很可能是微不足道的。例如,x86得到了很好的支持,我相信ARM也是如此。

我在宽松的意义上使用“琐碎的”; RT补丁可能无法干净地应用于具有自定义(即非主线)变化的任意内核,例如Android内核,但架构和低级集成到诸如并发控制之类的事情可能是一些最大的挑战。例如,RT补丁通常设计为与任意驱动程序一起使用 - 但可能存在其他问题:RT补丁涉及多个子系统。从好的方面来说,大量的RT补丁实际上已经进入上游内核,这根据Android内核所基于的分叉版本简化了任务。

假设RT补丁支持该架构,它已成功应用于已解决冲突的Android内核,并且启动,您的工作仍远未完成。任何用户空间应用程序(例如在JVM顶部运行的UI)都必须了解时序约束等...

有关使用RT补丁构建应用程序的更多信息,您可以参考此Wiki获取RT补丁:http://rt.wiki.kernel.org/(请注意,在撰写本文时,由于最近的安全漏洞,此kernel.org已关闭)

答案 5 :(得分:1)

你可以应用这两个补丁(RT内核和Android内核修改),但除了显而易见的整合两者的艰苦工作之外我怀疑你至少会有一个概念问题--Android使用一个锁定系统,称为“唤醒锁” “,控制运行系统的时间和级别可以进入省电模式。

问题在于深度省电模式根本不兼容需要可预测性的硬实时。

当然你可以修改Android补丁并提供唤醒锁定机制的“虚拟”实现,特别是因为在汽车中你有比普通平板电脑或智能手机更大的电池,但这是你需要的东西解决。

除此之外,我认为这是所有代码集成和测试工作。

祝你好运

答案 6 :(得分:0)

我最终自己采取了这种方法,并提出了一种基于超级遮阳板的方法,以便Android可以支持硬实时处理。