1.字元驅動裝置
指訪問時沒有快取的裝置,採用位元組流訪問的裝置,如按鍵,串列埠,音效卡,觸控螢幕等
2.塊驅動裝置
有快取來支援,塊裝置必須能夠隨機訪問(random access),字元裝置則沒有這個要求。 unix下,採用乙個資料塊來進行訪問,資料塊一般為512位元組,1k等,linux下,可以採用任意尺寸的資料來訪問,字元裝置和塊裝置的區別在於核心描述它們的使用的資料結構是不一樣的,訪問它們的操作介面是不一樣的。如硬碟、u盤、光碟、sd卡、nandflash等。
塊裝置使用前一定要先mount掛接. mount -t vfat /dev/sda1, 將u盤掛接到/mnt/目錄,以後訪問/mnt/目錄就是訪問u盤裡面的內容,然後 就可以使用open ,read, write 對u盤裡面的檔案進行訪問。
網路驅動裝置
在/dev/下沒有對應的裝置檔案,必須通過套接字來訪問,要結合tcp/ip協議棧來使用
問:應用程式如何訪問字元裝置驅動和塊裝置驅動?
字元裝置和塊裝置在使用者空間的/dev目錄下,都有對應的裝置檔案(一切皆檔案),應用程式通過函式呼叫open, read, write等訪問檔案裝置,就是訪問裝置驅動和硬體裝置
ls /dev/console -lh 檢視裝置檔案
crw------ 1 root root 5, 1 ... /dev/console
字元裝置 主裝置號 次裝置號 裝置結點
主裝置號:用於標識裝置型別,核心依據該裝置號對應裝置檔案和對應的裝置驅動
次裝置號:用於標識同型別的不同裝置個體,驅動程式依據該號碼辨別具體操作的哪個裝置個體,比如串列埠。
問:應用程式如何通過裝置檔案訪問驅動程式呢?
答:通過裝置檔案附加的主次裝置號
應用程式通過主裝置號找到對應的驅動程式,表明乙個驅動程式有唯一的主裝置號,那麼驅動程式也就必須和這個主裝置號進行關聯和繫結。那麼如何進行關聯和繫結呢?如果有同型別的不同裝置個體,比如s5pv210有四個串列埠, 這四個串列埠硬體屬性幾乎一樣,所以只需要乙個驅動程式即可,表明主裝置號只有乙個,都相等,那麼應用程式通個每個串列埠對應的裝置檔案的次裝置號在驅動程式中進行區分!
Linux裝置驅動分類
linux系統的裝置分為字元裝置 char device 塊裝置 block device 和網路裝置 network device 三種。字元裝置是指訪問時沒有快取的裝置。塊裝置的讀寫都有快取來支援,並且塊裝置必須能夠隨機訪問 random access 字元裝置則沒有這個要求。典型的字元裝置包括...
Linux裝置驅動程式分類轉
1.1 linux裝置驅動程式分類 linux裝置驅動程式在linux的核心源 中占有很大的比例,源 的長度日益增加,主要是驅動程式的增加。在linux核心的不斷公升級過程中,驅動程式的結構還是相對穩定。在2.0.xx到2.2.xx的變動裡,驅動程式的編寫做了一些改變,但是從2.0.xx的驅動到2....
驅動 linux裝置驅動 字元裝置驅動開發
preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...