Memory 什么是';将内存映射到用户空间';?

Memory 什么是';将内存映射到用户空间';?,memory,operating-system,linux-kernel,Memory,Operating System,Linux Kernel,当内存(假设某个内核内存缓冲区)映射到用户空间时,会发生什么情况?是否修改了用户进程的struct mm的页面表中的条目,使它们指向与内核虚拟地址空间中相同的页面 这是否意味着进程的条目映射到相应的内核虚拟地址 这个内存映射是如何实现的 对此有很好的解释 是页面中的条目吗 用户进程的结构mm的表 已修改,以便它们指向 与内核的 虚拟地址空间 是的。事实上,所有物理内存都已经映射到内核地址空间。 因此,这意味着无论将任何物理内存作为虚拟内存提供给进程,该内存都已经被内核映射。我建议您阅读Gorma

当内存(假设某个内核内存缓冲区)映射到用户空间时,会发生什么情况?是否修改了用户进程的
struct mm
的页面表中的条目,使它们指向与内核虚拟地址空间中相同的页面

这是否意味着进程的条目映射到相应的内核虚拟地址


这个内存映射是如何实现的

对此有很好的解释

是页面中的条目吗 用户进程的结构mm的表 已修改,以便它们指向 与内核的 虚拟地址空间

是的。事实上,所有物理内存都已经映射到内核地址空间。
因此,这意味着无论将任何物理内存作为虚拟内存提供给进程,该内存都已经被内核映射。我建议您阅读Gorman关于内存管理的书。

这是对API的一个很好的描述,但我想知道它在API层下是如何实际实现的。对不起,当我说所有物理内存时,我的意思是高达896mb。对进程的分配通常发生在ZONE_NORMAL中,因此它仍然有效。