【发布时间】:2020-08-27 05:22:22
【问题描述】:
我正在尝试研究“理解 Linux 内核”一书,但我停在“常规分页”部分。现在,我明白了为什么需要分页,它下面的概念是什么,但是......我无法理解很多东西。为什么表格页面的分页(s?我不记得了)是必要的,它是如何工作的?我的意思是,是的,一个表页的大小会太大,但是,如果在线性地址和物理地址之间的转换中,内核会根据 lin 的第一部分选择某个表页。补充一下,它必须在内存中的某个地方找到整组表页,所以......如果空间已经浪费了,为什么不做一个巨大的表页呢?然后,书上说 table page 中每个条目的维度是 32 位的,但是......如果页面是 4kb,为什么不使用这个事实呢?我们知道最后 12 位是 0,那么为什么不让它们隐含呢?我知道我说的所有这些事情都是错误的,我说这些只是为了更好地解释我的疑问。 (对不起,糟糕的英语)
【问题讨论】:
-
"为什么不使用这个事实?我们知道最后 12 位是 0,那么为什么不让它们隐含呢?" - 最后 12 位实际上用于非地址事物。参见例如osdev.
标签: linux kernel system paging