gpt4 book ai didi

linux - 保护虚拟内存中的页面

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:50 25 4
gpt4 key购买 nike

我在教程中读到,虽然intel分段在Linux中没有使用,但是代码段选择器数据段选择器中有保护或模式信息。在虚拟内存教程中,我读到了有关使用页表保护页面的内容,具体取决于页面运行的模式。

我想知道这两种机制是如何关联的?

页面上的保护信息在什么阶段添加到页表中?CPU是否检查代码段选择器并根据它设置页表标志?

最佳答案

虽然 Linux(几乎)不使用分段,因为您无法在 x86 上关闭它,但分段只是通过 protected 平面内存模型绕过。

实际上,分段是强制性的,在构建内核时,您必须设置代码和数据段选择器,因为这些段选择器设置当前的执行权限级别(CPL):基本上是ring 0(管理程序模式)或ring 3(用户态)。选择器(寄存器 CS、DS、...)将偏移量托管到 GDT 中。根据此偏移量指向的描述符,系统正在以给定的权限级别运行,请参阅Intel manual 3A, chapter 3.2.2有关使用段的更多信息。

正如您所看到的,使用 protected 平面内存模型,不会直接检查访问内存的属性(无论是代码还是数据)。你猜对了! MMU(我宁愿说寻呼)根据系统的CPL和页面的U/S属性来检查访问。

由内核(因此在 ring 0 中执行)来设置页面目录以及相关页面的属性。

关于linux - 保护虚拟内存中的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com