我想問一下,一個硬件設備被計算機系統控制如果必須要安裝驅動程序的話,那麼驅動程序是如何控制硬件的?
驅動程序相比應用程序沒有什麼特別的,特別只是特別在它們可以擁有一些特權指令,訪問操作系統的關鍵區域以及特殊的地址。
硬件大致分為幾類,一類是像顯卡之類的硬件,本質上它們相當於一個異構的處理器,它擁有專門的獨立的指令,你的驅動程序相當於上傳這些代碼給它,然後它自己處理。
一類是類似硬盤、網卡之類的,高速IO,這些一般使用DMA,操作起來如同讀寫內存,操作系統會映射地址給這些設備,你去讀寫,好像是寫內存,其實這些地址在你和設備之間共享。
還有一類類似USB、藍牙、打印機、COM等等,這些外設相當於外設通訊,通過端口收發數據。