linux驅動主要具有如下幾點作用:
系統呼叫是應用程式和核心之間的介面,驅動程式是核心和硬體之間的介面;驅動程式接受上層軟體(應用程式、核心)的請求,完成對硬體的操作,遮蔽了硬體的細節;
驅動程式將硬體裝置抽象成乙個檔案,應用程式操作檔案即操作硬體,符合linux「一切皆檔案」的思想。
計算機硬體系統有cpu、儲存器以及外設組成,linux驅動針對的物件是儲存器和外設;linux將驅動分為三大類:字元裝置驅動、塊裝置驅動以及網路裝置驅動。
字元裝置驅動:顧名思義,應用程式與驅動程式之間的資料互動是以字元(位元組)為單位的,字元裝置通常沒有中間快取。常見的字元裝置有:led、key、camera、顯示卡、串列埠等linux驅動有兩種存在形式,一種是編譯進核心;另一種編譯成模組,通過insmod方式安裝的。不管是哪一種方式,除了網路裝置之外,字元裝置驅動和塊裝置驅動的安裝都會在linux根檔案系統的 /dev 目錄下建立相對應的裝置檔案(塊裝置比較特殊,除了建立裝置檔案外,還會在根檔案系統的某個目錄下掛載檔案系統),應用程式可以通過 open()、write()、read()、ioctl()、close()系統呼叫介面訪問裝置。塊裝置驅動:顧名思義,應用程式與驅動程式之間的資料互動是以塊為單位的,主要針對的是儲存裝置,通常設有中間快取,並且帶有檔案系統,可以任意位置訪問。常見的塊裝置有:u盤、emmc、sd卡等
網路裝置驅動:網路裝置面向資料報的傳送而設計,它並不對應於檔案系統的節點。即不對應 /dev 目錄下的裝置檔案,應用程式最終通過套接字
socket 完成與網路裝置的資料互動。常見的網路裝置有網絡卡(無線網絡卡、有線網絡卡)。
linux驅動分類
眾所周知linux驅動分為三個類,分別為 字元裝置驅動 塊裝置驅動 網路裝置驅動 這三種驅動之前有什麼聯絡或者說有什麼差異點呢,可能很多人都不了解,我在研究過程中為了更好的理解,所以做了乙個總結。首先我們來看看字元裝置驅動和塊裝置驅動是怎麼定義的 字元裝置驅動是以不定長度的字元來傳送資料,字元裝置是...
Linux驅動裝置分類
1.字元驅動裝置 指訪問時沒有快取的裝置,採用位元組流訪問的裝置,如按鍵,串列埠,音效卡,觸控螢幕等 2.塊驅動裝置 有快取來支援,塊裝置必須能夠隨機訪問 random access 字元裝置則沒有這個要求。unix下,採用乙個資料塊來進行訪問,資料塊一般為512位元組,1k等,linux下,可以採...
Linux裝置驅動分類
linux系統的裝置分為字元裝置 char device 塊裝置 block device 和網路裝置 network device 三種。字元裝置是指訪問時沒有快取的裝置。塊裝置的讀寫都有快取來支援,並且塊裝置必須能夠隨機訪問 random access 字元裝置則沒有這個要求。典型的字元裝置包括...