ION内存管理简介
https://www.jianshu.com/p/4f681f6ddc3b
http://kernel.meizu.com/memory%20management%20-%20ion.html
ION,最显著的特点是它可以被用户空间的进程之间或者内核空间的模块之间进行内存共享,而且这种共享可以是零拷贝的。在实际使用中,ION 和 VIDEOBUF2、DMA-BUF、V4L2 等结合的很紧密。本文主要介绍 ION,其它子系统感兴趣的话后续会陆续进行介绍。
ION 是在各种 heaps 上分配内存,通过 ion_buffer 来描述所分配的内存。
下图展示了 ION 的基本框架。图中 PID1、PID2、PID3 表示用户空间进程。ION core 表示 ION 核心层,它提供设备创建、注册等服务,同时提供统一的接口给用户使用。ION Driver 利用 ION core 对相应功能进行实现,可以说它是具体平台相关的,例如 SAMSUNG 平台、QUALCOMM 平台和 MTK 平台都会依据自己的特性开发相应的 ION Driver。
kmalloc()与vmalloc()的区别