android ashmem 匿名共享内存

1. ashmem是基于linux里的shmem实现的,而shmem又是基于tmpfs伪文件系统。

2. ashmem驱动实现了/dev/ashmem设备文件的open/read/llseek/mmap/ioctl等文件操作,但没有实现write文件操作,由于本质还是文件内存映射(内存指得是进程的虚拟内存,文件则是属于tmpfs,这里和基于磁盘的文件系统的内存映射还是有所不同的,这难道是匿名一词的来源?)

3. ashmem的用途主要是用于进程间通信的,这个和shmem是类似,但是添加了一些新的特性,比如内存回收时的shrink回调,page pin/unpin功能;通过binder通信机制传递文件形式的flat_binder_object可以减少系统中存在的file对象,两个进程可以共用同一个file对象,如果是通过mmap来达到映射通信的目的的话,系统会存在两个file对象指向同一个inode对象(感觉是这样的,还没有去确认)。 


4. mmap的匿名映射应该是不能在进程间共享的,这种匿名映射主要是用于分配大块内存的, malloc的实现就是通过brk或者mmap系统调用来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值