title: Linux中mmap()函数的内存映射问题理解？
desc: mmap这个函数到底是把 硬盘里的数据映射到物理内存（还是虚拟内存？）中，还是把物理内存中的数据映射到虚拟内存中？ 有点晕，我猜测是前者，但不确定。。。还有，网上说的映射到多个页上是什么意思？物理内存不是连续的么，直接把硬盘上的数据dump到物理内存不就行了。mmap的好处一个是节约IO读写时间？（但是，内存映射了之后，最后我要保存的话还是需要把内存上的数据写到硬盘的吧？），还有一个是可以实现共享内存通信是吧？没别的好处了吧？初次接触，查了资料还是有点晕，所以问题有点多，望各位大神谅解
topic: Linux
content: 你的脑子是晕的，被听到的信息搞晕了头脑，我帮你洗一次脑吧。1. 请放弃虚拟内存这个概念，那个是广告性的概念，在开发中没有意义。开发中只有虚拟空间的概念，进程看到的所有地址组成的空间，就是虚拟空间。虚拟空间是某个进程对分配给它的所有物理地址（已经分配的和将会分配的）的重新映射。2. mmap的作用，在应用这一层，是让你把文件的某一段，当作内存一样来访问。内核和驱动如何实现的，性能高不高这些问题，这层语义上
answerer_tags: KL@HS