2017-08-24 78 views
0

如果內核驅動程序正在內核空間或Ring0中運行,那爲什麼它仍然受制於系統調用而不是執行iteself操作。我的問題真的是爲什麼有一個內核驅動程序,如果用戶模式和內核驅動程序都必須使用系統調用?爲什麼不只是使用系統調用而不是內核驅動程序的常規程序。如果正常的程序和驅動程序都使用系統調用,設備驅動程序的意義是什麼

+0

你指的是什麼驅動程序體系結構?視窗? Linux呢?還有別的嗎? – duskwuff

+0

哦對不起。 Im重於Linux內核驅動程序 – aatate98

+2

是什麼讓你認爲內核模塊「受系統調用」? (你是什麼意思?) – duskwuff

回答

-1

內核模塊(驅動程序)不使用系統調用,因爲它在環0上運行。它將替換(或添加)現有系統調用,以便當使用該模塊的設備調用該操作時(調用系統調用),被調用的內核函數是模塊定義的內核函數,而不是默認的內核函數。

+2

關於內核模塊如何工作的說明顯着不準確。內核模塊不會(並且實際上_cannot_)覆蓋系統調用。 – duskwuff

+0

@duskwuff,雖然我一般同意評論,但是有可能從內核模塊中覆蓋系統調用。 – 0andriy

+0

@ 0andriy該方法存在,但它不在Linux內核中使用。 – duskwuff

相關問題