BIOS調用在Linux操作系統中不可用。我想知道內核如何防止執行包含調用BIOS子例程的指令?Linux內核如何防止BIOS系統調用?
回答
的INTñ指令生成對目標操作數指定的中斷或異常處理程序的調用。目標操作數指定從0到255的中斷向量編號,編碼爲8位無符號中間值。每個中斷向量號爲IDT中的門描述符提供索引。
選定的中斷描述符又包含一個指向中斷或異常處理程序過程的指針。在保護模式下(linux只在保護模式下工作),IDT包含一個8字節描述符的數組,每個描述符都是中斷門,陷阱門或任務門。
此IDT由操作系統設置。 Linux將其設置爲使描述符指向自己的處理程序,而不是BIOS處理程序。
BIOS主要以16位模式提供,而不是Linux運行的32位或64位模式的x86。
Linux進程運行在user mode,使用virtual memory,它有自己的虛擬address space。
某些機器指令(特別是INT
,用於進入BIOS)有特權,因此無法在用戶模式下運行。如果你嘗試在用戶模式下運行它們,處理器會產生一個機器異常,內核通過發送一些信號來處理它。 (某些INT
也用於系統調用,但SYSENTER
指令是首選)。
內核如何確定是否拒絕某個特定的中斷? – KawaiKx
內核處理所有中斷。它並不否認任何一個。 –
- 1. 冗餘的Linux內核系統調用
- 2. Linux內核中的系統調用
- 3. Linux內核AIO,開放系統調用
- 4. 更改linux內核系統調用號
- 5. 如何禁止系統調用GNU/Linux
- 6. Linux內核模塊(內核3.5)中的系統調用攔截
- 7. Linux阻止系統調用
- 8. 哪個進程在Linux內核中調用系統調用?
- 9. 需要幫助瞭解Linux內核的BIOS中斷調用
- 10. 使用「int 0x80」進行Linux內核系統調用
- 11. Linux內核2.6中有多少系統調用?
- 12. linux內核中的系統調用表在哪裏?
- 13. Linux內核3.3.4中的自定義系統調用
- 14. Linux內核中的系統調用錯誤處理
- 15. 在Linux內核3.3中添加一個新的系統調用
- 16. 在Linux內核源代碼中執行系統調用/陷阱
- 17. 在linux 2.6.39.4內核中測試系統調用
- 18. Linux內核系統調用返回-1而不是{-1,-256}
- 19. 做一個簡單的系統調用linux 2.6.39內核
- 20. 將系統調用添加到linux內核3.8.8
- 21. 在Linux內核尋找系統調用實現
- 22. Linux內核系統調用命名約定
- 23. 在系統調用中訪問Linux內核的SuperBlock對象
- 24. Linux內核系統調用返回沒有給出的指針
- 25. Linux內核操作系統寄存器
- 26. 沒有內核的Linux文件系統
- 27. 如何防止評論系統濫用
- 28. Linux系統調用
- 29. linux內核模塊阻止卸載文件系統
- 30. 在Linux內核3.x模塊中如何計算與Kprobe的系統調用?
你的意思是在用戶空間調用BIOS例程嗎? – tristan
Linux並不公開irq,任何程序員都可以使用它,所以bios irq就是這樣。 – icbytes