Kin*_*red 5 linux virtual-memory linux-kernel
我想知道 Linux 在哪里存储页表。它在内核虚拟内存中吗?
这似乎与虚拟内存系统有关。但我是新手,所以如果我走错了方向,请告诉我。为了自己回答这个问题,我从一本书中读了几行说:
(23.2 第 8 页)
... Linux 虚拟地址空间由用户部分和内核部分组成...
...内核部分在进程间是相同的。
那么内核提供的地址空间在某种意义上是进程共享的空间吗?那么如果页表被放在内核虚拟内存中,这是否意味着进程可以共享它们的页表?
我读过的书:http : //www.ostep.org
Joh*_*éen 12
是的,页表存储在内核地址空间中。每个进程都有自己的页表结构,它的设置使得地址空间的内核部分在进程之间共享。然而,内核地址空间不能从用户空间访问。用户空间代码使用系统调用以受控方式与内核通信。系统调用成功后,处理器进入特权状态,此时内核地址空间可用。