概览
Binder 内存管理指的是:管理 binder mmap 映射的这块缓冲区。其中有两个关键的数据结构:
binder_alloc:缓冲区分配器,对每个使用 binder 进行 IPC 通信的进程,事先建立一个缓冲区;
binder_buffer: 描述缓冲区的数据结构
本文先对这两个关键的数据结构进行研究,然后再逐一分析使用这些数据结构的相关函数和算法。
数据结构分析
binder_alloc
大约 4 分钟
Binder 内存管理指的是:管理 binder mmap 映射的这块缓冲区。其中有两个关键的数据结构:
binder_alloc:缓冲区分配器,对每个使用 binder 进行 IPC 通信的进程,事先建立一个缓冲区;
binder_buffer: 描述缓冲区的数据结构
本文先对这两个关键的数据结构进行研究,然后再逐一分析使用这些数据结构的相关函数和算法。
本文主要讲述 Binder 流程中的各个阶段,起到一个 Overview 的目的。
进程间通信(IPC) 在系统中非常重要,目前 Android 的 binder 方案已经属于行业内非常优秀的实践案例;但是作为软件从业人员,如果仅仅满足于现有架构或者技术的优势,这是远远不够的。所以本文有几个重要的目的:
对于 binder 具体的分析可以看我的另一篇博文《Research on Binder》,在此对具体的技术细节就不进行赘述,总的来看,binder 的优点包括以下几个: