Binder 机制初探
Read The Fucking Source Code
0. 准备工作
首先问自己几个问题:
- 为什么要跨进程通信(IPC)? (进程之间是不可以通信的吗)
- 怎么做到跨进程通信? (怎样用常规的方式在两个进程之间进行通信呢)
- 为什么是 Binder ? (为什么常规的跨进程方式不行,而要专门使用 Binder)
回答这几个问题,我们得先了解一下几个概念。为后面做铺垫。
Android 系统是基于 Linux 内核的,因此有必要了解一些相关知识。
0.1 进程隔离
进程隔离是为保护操作系统中进程互不干扰而设计的一组不同硬件和软件的技术。这个技术是为了避免 进程A 写入 进程B 的情况发生。 进程的隔离实现,使用了虚拟地址空间。进程A 的虚拟地址和 进程B 的虚拟地址不同,这样就防止 进程A 将数据信息写入 进程B。
以上来自维基百科:进程隔离的安全性通过禁止进程间内存的访问可以方便实现。相比之下,一些不安全的操作系统(例如DOS)能够允许任何进程对其他进程的内存进行写操作。
根据以上描述,我们可以知道 操作系统的不同进程之间,数据是不共享的,即禁止进程间内存的访问。因此我们可以回答第一个问题。
<