内核代码负责虚拟内存

时间:2013-02-25 17:08:00

标签: linux kernel

我知道'即使单个进程的虚拟地址空间也大于系统的物理内存',所以只想知道哪个内核代码负责创建比物理内存更大的虚拟内存?

第二件事是,我可以更改代码使其变得不大吗?是否有任何性能优势如果我更改代码以扩展虚拟内存?

1 个答案:

答案 0 :(得分:0)

涉及所有内存管理(和address space)管理代码。

从应用程序的角度来看,您应该了解更多virtual memory(内核控制MMU并处理page faults),尤其是mmap(2),{{3} },mprotect(2)madvise(2)系统调用。应用程序使用这些系统调用更改其地址空间。您可以使用execve(2)文件系统来查询它。例如,cat /proc/self/maps显示执行cat

的进程的地址空间

另请阅读proc(5)。详细了解Advanced Linux Programming& VDSO

在内核中,相关的源代码主要是其ASLR子目录 (但几乎每个文件系统都有mmap个特定代码,页面错误也与调度等有关......)