10
回答
android系统中为什么需要binder IPC机制?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

Android在Linux基础上增加了binder IPC机制,它有必须要这样做的理由么?

现有的Linux IPC机制为什么不能满足android系统的要求?

求高手分析指导下。

举报
ChenQi
发帖于6年前 10回/1K+阅
共有10个答案 最后回答: 4年前

个人认为,目前linux的ipc机制还是太基础,太难用

android需要一个更高级的ipc框架,以标准化和简化使用

--- 共有 7 条评论 ---
中山野鬼回复 @syslight : 哈。你莫误会。确实是我比较弱。其实你从3.3研究未尝不可。我也不是大侠,如果不是你说我还真不知道binder被并进去了。我也是在学习。 6年前 回复
syslight回复 @中山野鬼 : 误会误会,我完全没学习过内核源码,只是因为之前学习IPC的时候,产生好奇,所以下下来了解了一下。。。。。各位大侠不要误会 6年前 回复
中山野鬼回复 @syslight : 哈,3.3没碰过哦。很弱弱的说,2.6都没怎么完整的看全。 6年前 回复
syslight@ChenQi linux3.3的源码合入了binder驱动源码,IPC机制中的其他源码应该不需要在内核中,不知道我说错没. 6年前 回复
ChenQi回复 @syslight : 哦~~?我之前看了下2.6.39的肯定是没有的。然后我查看了3.0,3.1和3.2的修改log,好像也没有阿?哪里加的呢?难道是我查的方法有问题。。。。 6年前 回复
binder没什么复杂的。当然基于你对linux的IPC已经了解的基础上。binder无非是在内核做了个IPC的服务,使得你能独立写server ,client ,server manager。对于应用开发是用帮助的。但是对于例如对等模块的IPC,binder就一眼黑了。对于android上,面向APP开发,使用binder是个良好的选择,主要是为了简化APP的开发。但为什么linux不引入binder机制,我觉得完全可以引入,但也完全没有引入的必要。这个类似于你家电视机是否要嵌入个DVD播放器。有的话更方便。就是没有,用外置的DVD也能完成,不过电视机不一定买来就是要播放DVD的,可能拿他做监控显示器呢?或者广告机。
--- 共有 1 条评论 ---
ChenQi谢谢。我再研究研究。 6年前 回复
现有的linux IPC完全可以做同样的事情,但是需要你自己写维护代码。这个如同,有了C语言这么高级的语言,为什么还有脚本语言?比如PHP?

引用来自“syslight”的答案

个人认为,目前linux的ipc机制还是太基础,太难用

android需要一个更高级的ipc框架,以标准化和简化使用

回复 @syslight : 跪了。。。。原来是3.3阿。我目前的理解是,所有的IPC都是需要内核支持的(毕竟没有内核还玩个球阿。。。),因为IPC本质上是对task_struct进行操作。比如signal IPC机制,实际上是kernel修改task_struct域中的某个field来表示signal的产生,通过调用存储在task_struct中的sigaction来表示signal的处理(此处会有内核和用户空间的交互,因为signal handler是用户空间程序)。其他的IPC,如pipe,需要kernel对fd table来进行一些操作。socket需要kernel支持网络接口。大致如此,感觉自己混混沌沌一知半解的。所以研究研究。
锦上添屎的东西
--- 共有 4 条评论 ---
kajhsdjkah回复 @ChenQi : 模块之间最松散的耦合方式就是通过TCP/UDP直接互传数据,那些把网络交互抽象成远程过程调用、远程对象之类的纯属没事找事的东西。 6年前 回复
ChenQi回复 @mallon : 我认为,不是不应用场景不一样?在android上需要很多不同的开发者能方便的利用系统服务的同时,尽量降低各个模块件的耦合,所以binder机制在这方面有所优势;而linux发行版中,没有这个需求,也就没有必要做这种处理了。我也不是太懂,学习学习哟~~(不过好像open binder是灭了--!) 6年前 回复
kajhsdjkah回复 @ChenQi : 简单问题复杂化呗,这种复古的垃圾也只有在Android上有吧,Linux发行版不会采用的 6年前 回复
ChenQi你是说Linux引入binder么?为什么呢? 6年前 回复

Binder机制是android最核心的技术之一,虽然没有完全理解,但是其强大之处,已经令小生叹为观止。 马达马达哟~~

给个链接讲得挺好,主要是 安全 高效 ;当然模块话,简单话,也有,个人认为。http://www.cnblogs.com/bastard/archive/2012/10/17/2728155.html


顶部