我可以猜测,这个问题可能是重复的,但为了清楚起见,我单独询问。
所以我的理解是,对于 32 位架构,我们有 4 GB 虚拟内存,其中 3 GB 用于用户空间,1 GB 用于内核空间。
所以我不明白的是,用户空间进程和内核空间之间共享相同的 1 GB 物理内存,它到底是如何工作的?
如果问题不清楚,请告诉我,我会尝试添加更多详细信息。
最佳答案
So What I understand is, for 32 bit architecture, we have 4 GB virtual memory, In which 3 GB is used for user space and 1 GB for kernel space.
对。每个进程都有 3GB 用于虚拟内存中进程特定的映射。内核有 1GB 用于虚拟映射。
So what I don't understand is, the same 1 GB physical memory is shared between user space processes and kernel space, How it works exactly?
操作系统管理所有物理内存,根据需要将其映射到内核虚拟内存或用户虚拟内存。如果进程X需要映射到虚拟地址Z的物理内存页Y,那么内核将确保进程X运行时映射到位。
关于linux - Linux中用户空间内存和内核空间内存如何映射到物理内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283128/