2010-05-19 75 views
1

我很好奇搞亂硬件。但是到目前爲止,我的頂級「搞亂」是C程序中的鏈接或內聯彙編程序。如果我對CPU和鈴聲模式的理解是正確的,我不能直接從用戶模式應用程序訪問某些低級CPU功能,如禁用中斷或更改保護模式段,因此我必須使用系統調用來完成我想要的任何操作。快速CPU環模式保護問題

但是,如果我是正確的,司機可以以環模式0運行。我其實並不瞭解司機,但這是我所要求的。我只想知道,正在學習如何編寫自己的驅動程序,而不是像我應該去的那樣稱呼他們,去做我寫的東西?

我知道我可以編寫全新的操作系統(至少在某種程度上),但我真正想要做的是從standart windows應用程序中獲取硬件的一些低級功能。那麼,司機是否應該走?

回答

1

簡答:是的。

長的答案:管理對低級硬件功能的訪問正是OS內核的工作,如果您只想訪問單個功能,則無需從頭開始創建自己的操作系統。大多數現代操作系統,如WIndows,Linux或BSD,允許您通過內核模塊向內核添加代碼。

在編寫內核模塊(或設備驅動程序)時,您將編寫將在OS內核中執行的代碼,並因此將在CPU環0中運行。大功率帶來了巨大的責任,在這種情況下意味着你應該真的知道你在做什麼,因爲沒有預先配置的操作系統界面來防止你做錯事。因此,您應該研究硬件手冊(例如,英特爾的x86軟件開發人員手冊,設備規格等)以及標準操作系統開發文獻(您也可以在網上找到大量的文檔 - OSDevOSDever,OSR, Linux Device Drivers)。

1

如果你想玩硬件寫一些16位實模式的程序(甚至你自己轉換到保護模式)。在那裏你必須處理ASM,BIOS中斷,段,視頻內存和其他許多低級別的東西。