管道的半双工
管道在双方在内核中共用同一内存区,为了保证数据信息的准确性,所以双方进程读写互斥,且一方写时另一方不可读。
由于双方共享一块缓冲,所以半双工的限制就产生了。
Socket的双工
所谓双工就是两个进程拥有两块缓存,读取数据从自己的缓存,投递数据到对方的缓存。双工的实现由此而来。
Binder的轻量化
传统ipc的方式拥有很好的性能,也占用更多的资源。但是进程间的通信也不全是大量数据的交换,很多时候仅仅是不时地通告一下和异步的信息发送。针对这一行为,android实现了轻量化的binder,所有进程共享同一个binder驱动。数据统一由此处理。而不是像管道或socket一样,每个ipc需求都要消耗资源在内核中申请空间。轻量化的binder由此而来。
binder的驱动还没时间研究,TODO....