有人可以解释为什么创建了ashmem吗?
我正在浏览mm/ashmem.c
。据我所知,内核将ashmem视为可以映射的文件支持的内存。但是,为什么还要麻烦实现ashmem?似乎可以通过安装RAM fs然后使用filemap/mmap共享内存来实现相同的功能。
我确信ashmem可以做更多花哨的事情-从查看代码来看,这似乎与固定/取消固定页面有关?
最佳答案
Ashmem允许与祖先无关的进程按名称共享内存映射,这些映射将自动清除。
普通的老式匿名mmap和System V共享内存缺少其中一些要求。
当运行的程序不再引用System V共享内存段时(有时是功能,有时是令人讨厌的事情)。
匿名共享的mmap可以从父进程传递到子进程,这是不灵活的,因为有时您希望不以这种方式进行关联的进程共享内存。