作者回复: 很赞!你理解的很对,如果是读的话,那读出来的内存其实是跟file cache共享的,只有真正去写他的时候,才会真正分配给进程地址空间private的内存,这个细节我疏于描述了,你在这里能够指出来很赞!另外,看得出来你对内核代码研究的也很深入,加油!
作者回复: 私有文件映射会把文件内容给读到进程地址空间,但是由于这个映射是私有的,也就是其他进程不可见,所以它的内容不会回写到文件,所以内核会把它的属性设置为anonpage。你可以写个测试用例来看看是不是这样。
作者回复: 会包含的。RSS是指进程地址空间已映射的物理内存,这个物理内存有可能是Shared方式来映射的,那这块物理内存就是Shared memory。也就是说RSS的本质是物理内存是否映射到了进程的地址空间,而和映射属性无关。
作者回复: 后面的数字代码该函数/命令所属的领域,比如: 1 - 用户命令 2 - 系统调用 3 - 库函数 等等 可以参考: https://www.kernel.org/doc/man-pages/
作者回复: 嗯 只能保证2M是物理内存连续的 整个的1G是由很多2M连续物理内存组成。