2012-04-06 49 views
3

任何用户都可以为当前的Linux内核运行内联程序集,还是需要特殊权限?内联程序集需要在Linux中有权限吗?

+4

内联汇编与内核无关。所以答案是否定的。 – Mysticial 2012-04-06 07:54:20

+0

谢谢,但无法修改通过汇编运行的内核代码并访问内核空间内存? – 2012-04-06 07:56:04

+0

是的,但您也可以在所有通用语言中使用该语言,如'C'。内核不会让你进行不允许的访问。 “SEGFAULT”将是最常见的症状。 – wallyk 2012-04-06 08:15:58

回答

7

内联汇编与内核无关。所以答案是否定的。

任何人都可以编写内联汇编并将其编译到程序中。它与编译器生成的代码没有任何区别。

至于你的评论,答案是否定的,因为memory protection是不可能的。只要尝试访问未映射的内存,或者您不允许(不管它是使用C语言还是通过内联汇编),您都会遇到seg-fault。


换句话说,保护层不在C代码和编译器之间。它在编译的代码和操作系统之间。

所以你不能使用C或内联汇编破坏内核 - 除非你已经获得了这样做的权限。

相关问题