匿名共享内存系统

1.驱动初始化处理

图片发自简书App

图片发自简书App

2.类MemoryHeapBase继承了类BnMemoryHeap,作为binder机制中Server的角色需要实现IMemoryHeap接口,主要功能是实现类IMemoryHeap中成员函数,描述一块匿名共享内存服务。类在文件framework/native/include/binder/Memory/HeapBase.h中定义。

图片发自简书App

3.类BpMemoryHeap是类MemoryHeapBase在client端进程的远程访问接口类。

图片发自简书App

图片发自简书App

可以看到核心代码是通过HEAP_ID从服务端获取到parcel_fd,然后dup,接口mmap来得到自己的共享内存基地址。所谓“匿名”的意思是指driver层在临时文件系统tmpfs中创建一个临时文件,与匿名共享内存对应。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容