作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道 linux 内核命令行中这两个参数之间的区别:
在这两种情况下,它都拒绝内核执行用户空间内存中的代码。但我看不出它们之间有任何区别。
dmesg 中的错误消息不同,但行为似乎相同。
谢谢
最佳答案
noexec
参数控制内核是否可以使用分页结构的 XD 标志(也称为 NX 标志)来标记不应如此执行的页面。另一方面,nosmep
参数指定是否启用 SMEP。请注意,nosmep
仅在内核版本和处理器都支持 SMEP 时有效(参见:How can i enable/disable kernel kaslr, smep and smap)。此外,XD 仅在内核以 64 位运行或使用 36 位分页且 IA32_EFER.NXE
设置为 1 时有效。
XD 和 SMEP 标志确定是否可以获取给定内存位置的指令。 SMEP 覆盖 XD,这意味着如果设置了 SMEP,supervisor-mode无论 XD 标志如何,都不允许代码从用户页面获取指令(用于执行)。否则,如果不支持或禁用 SMEP,则在以下情况下不允许取指令:
在任何这些情况下,都会发生页面错误异常 (#PF)。
关于linux-kernel - nosmep 和 noexec=off 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639893/
我想知道 linux 内核命令行中这两个参数之间的区别: 不执行=关闭 鼻息 在这两种情况下,它都拒绝内核执行用户空间内存中的代码。但我看不出它们之间有任何区别。 dmesg 中的错误消息不同,但行为
我是一名优秀的程序员,十分优秀!