2012-04-06 46 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或內聯彙編破壞內核 - 除非你已經獲得了這樣做的權限。

相關問題