X86 如果虚拟内存页是可执行的,是否意味着它是可读的?

X86 如果虚拟内存页是可执行的,是否意味着它是可读的?,x86,protection,virtual-memory,X86,Protection,Virtual Memory,如果我在x86系统上创建了一个虚拟内存页面,页面保护设置为仅可执行,这是否意味着该页面也是可读的?我认为x86没有单独的可执行标志,所有可读页面都是可执行的。所以我想这意味着答案是“是”(即使逻辑是反向的)。假设IA-32e模式:是,页表条目没有禁止读取的位,只有禁止写入的位(位1,R/W)。页面总是可读的,假设位2(U/S、用户/监控)允许访问。位63,EXB是执行禁止位。这就是保护旗。英特尔处理器手册中的第3.10.3章。指出,可执行标志/位从P4开始提供,在x86_64体系结构中也提供了。

如果我在x86系统上创建了一个虚拟内存页面,页面保护设置为仅可执行,这是否意味着该页面也是可读的?

我认为x86没有单独的可执行标志,所有可读页面都是可执行的。所以我想这意味着答案是“是”(即使逻辑是反向的)。

假设IA-32e模式:是,页表条目没有禁止读取的位,只有禁止写入的位(位1,R/W)。页面总是可读的,假设位2(U/S、用户/监控)允许访问。位63,EXB是执行禁止位。这就是保护旗。英特尔处理器手册中的第3.10.3章。

指出,可执行标志/位从P4开始提供,在x86_64体系结构中也提供了。因此,对于AMD64之前的P4和AMD处理器之前的英特尔处理器,您是正确的,但对于现在的大多数x86处理器,您是错误的。