mmap很早就知道一些,但是只是简单知道这个可以减少内存消耗,并不知道它的实现原理是怎么样的,所以也不知道它到底是怎么去减少内存消耗的,然后找了相关资料看了下,发现和android的bundle机制还有点相似,这里做个记录和总结
一些概念
我们都知道linux进程分为用户空间和内核空间,后来在零拷贝原理中知道对于32位操作系统来说系统会给每个应用进程分配4G的虚拟内存空间,其中0-3G的内存地址属于用户空间,3-4G的内存地址属于内核空间。其中用户空间是不能共享的,而内核空间是运行操作系统的,它独立于普通的应用程序,是被所有应用程序共享的。所以对一个应用来说,只有3G的用户空间是属于应用本身的。参考:内核空间与用户空间。由于用户空间是隔离的,所以这里当一个进程想访问另外一个进程的用户数据时就涉及到进程之间的通讯了(RPC),Android使用bundle来更好的解决这个问题,后面单独写Android的bundle机制。


