简单浏览了这几个帖子:
https://www.zhihu.com/question/48161206/answer/110418693
https://blog.csdn.net/mg0832058/article/details/5890688
https://zhuanlan.zhihu.com/p/66288943
几个要点:
1. 虚拟地址空间:虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。虚拟地址空间包括内存、也包含MMIO。
2. 用户空间、内核空间
3. MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。
4. 进程可以通过mmap直接访问硬盘。系统调用(read/write)的过程是“物理存储介质”->"内核空间"->"用户空间"。mmap这种方式比系统调用(read/write)少了一次数据从“物理存储介质”->"内核空间"的拷贝。直接实现了“物理存储介质”->"用户空间"的拷贝,所以当访问硬盘上的大文件时,效率会高。