我读到了 x86 内存分段,我认为我遗漏了一些东西,线性(虚拟)地址是通过从 GDT 条目(基地址)中获取 32 位,从偏移地址中获取 32 位和将它们相加得到一个 32 位的虚拟地址。
现在,正如我所见,32 个偏移位可以跨越所有 VA 空间,因此实际上不需要使用 32 位基地址。所以我得出结论,基地址在翻译过程中并没有真正发挥作用,这让我想到使用分段的内存保护(在 x86 保护模式下)是无用的,因为我们可以获得具有环 0 权限的段的 VA与偏移地址本身。(例如,跳转 0x08000001 - 当我们的段具有环 3 特权时到内核 VA)
那么我们所有的内存保护都基于分页吗?