Linux裝置驅動程式分類轉

2021-04-21 08:24:25 字數 1220 閱讀 7424

1.1 linux裝置驅動程式分類

linux裝置驅動程式在linux的核心源**中占有很大的比例,源**的長度日益增加,主要是驅動程式的增加。在linux核心的不斷公升級過程中,驅動程式的結構還是相對穩定。在2.0.xx到2.2.xx的變動裡,驅動程式的編寫做了一些改變,但是從2.0.xx的驅動到2.2.xx的移植只需做少量的工作。

linux系統的裝置分為字元裝置(char device),塊裝置(block device)和網路裝置(network device)三種。字元裝置是指訪問時沒有快取的裝置。塊裝置的讀寫都有快取來支援,並且塊裝置必須能夠隨機訪問(random access),字元裝置則沒有這個要求。典型的字元裝置包括滑鼠,鍵盤,序列口等。塊裝置主要包括硬碟軟盤裝置,cd-rom等。乙個檔案系統要安裝進入作業系統必須在塊裝置上。

網路裝置在linux裡做專門的處理。linux的網路系統主要是基於bsd unix的socket機制。在系統和驅動程式之間定義有專門的資料結構(sk_buff)進行資料的傳遞。系統裡支援對傳送資料和接收資料的快取,提供流量控制機制,提供對多協議的支援。

1.2 編寫驅動程式的一些基本概念

無論是什麼作業系統的驅動程式,都有一些通用的概念。作業系統提供給驅動程式的支援也大致相同。下面簡單介紹一下網路裝置驅動程式的一些基本要求。

1.2.1 傳送和接收

這是乙個網路裝置最基本的功能。一塊網絡卡所做的無非就是收發工作。所以驅動程式裡要告訴系統你的傳送函式在**,系統在有資料要傳送時就會呼叫你的傳送程式。還有驅動程式由於是直接操縱硬體的,所以網路硬體有資料收到最先能得到這個資料的也就是驅動程式,它負責把這些原始資料進行必要的處理然後送給系統。這裡,作業系統必須要提供兩個機制,乙個是找到驅動程式的傳送函式,乙個是驅動程式把收到的資料送給系統。是驅動程式把收到的資料送給系統。

1.2.2 中斷

中斷在現代計算機結構中有重要的地位。作業系統必須提供驅動程式響應中斷的能力。一般是把乙個中斷處理程式註冊到系統中去。作業系統在硬體中斷發生後呼叫驅動程式的處理程式。linux支援中斷的共享,即多個裝置共享乙個中斷。

1.2.3 時鐘

在實現驅動程式時,很多地方會用到時鐘。如某些協議裡的超時處理,沒有中斷機制的硬體的輪詢等。作業系統應為驅動程式提供定時機制。一般是在預定的時間過了以後**註冊的時鐘函式。在網路驅動程式中,如果硬體沒有中斷功能,定時器可以提供輪詢(poll)方式對硬體進行訪問。或者是實現某些協議時需要的超時重傳等。

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...

Linux裝置驅動程式 字元裝置驅動程式

1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...

Linux裝置驅動程式

linux系統中的裝置分為字元裝置 char device 塊裝置 block 和網路裝置 net device 三種,字元裝置是指在訪問時沒有快取,能夠像檔案一樣被訪問的裝置,字元裝置驅動程式至少要實現open close read和write系統呼叫。多數的linux裝置驅動程式可以在核心模組發...