塊裝置驅動程式

2021-07-05 16:05:57 字數 818 閱讀 6232

1、塊裝置驅動程式的引入

對於塊裝置,不能像字元裝置那樣直接提供讀寫函式

假設: 寫扇區0和扇區1

原先是這樣寫扇區0:

a.讀出整塊到buffer

b.修改buffer裡的扇區0

c.擦除整塊

d.燒寫整塊

原先是這樣寫扇區1:

a.讀出整塊到buffer

b.修改buffer裡的扇區1

c.擦除整塊

d.燒寫整塊

優化後是這樣寫扇區0/1

1. 讀出整塊

2. 修改兩個扇區(0和1)

3. 擦除整塊

4. 燒寫整塊

宗旨就是: 先不執行,放入佇列,優化後再執行

3、塊裝置驅動程式的編寫步驟

a. 使用alloc_disk分配gendisk結構體

b. 設定gendisk

b.1 blk_init_queue(分配/設定)佇列request_queue_t

b.2 設定gendisk其他資訊 // 它提供屬性: 如容量

c. 註冊: add_disk

4、塊裝置的使用步驟

a. 分割槽    b. 格式化   c. 掛載

硬碟與u盤:a. fdisk 裝置節點  b.mkfs.*** 裝置節點  c.mount

flash:a.分割槽 在驅動程式中宣告  b.格式化是在製作映象的時候進行格式化,並在u-boot的引數中進行宣告。擦除和寫入操作是mtd_util的flash_eraseall和flash_cp,針對的是/dev/mtdx   c.mount

5、sync會讓當前的塊裝置寫入操作馬上生效

裝置驅動 塊裝置驅動程式

塊裝置驅動程式提供對面向塊的裝置的訪問,這種裝置以隨機訪問的方式傳輸資料,並且資料總是具有固定大小的塊。典型的塊裝置是磁碟驅動器,也有其它型別的塊裝置。塊裝置和字元裝置有很大區別。比如塊裝置上可以掛載檔案系統,字元裝置不可以。這是隨機訪問帶來的優勢,因為檔案系統需要能按塊儲存資料,同時更需要能隨機讀...

塊裝置驅動程式

裝置描述 定義於linux genhd.h struct gendisk 裝置註冊 void add disk struct gendisk gd 裝置操作 字元裝置通過file operations結構來定義它所支援的操作。塊裝置通過struct block device operations結構...

塊裝置驅動程式

塊裝置驅動程式 1 塊裝置和字元裝置的區別 1,讀取資料的單元不同,塊裝置讀寫資料的基本單元式塊,字元裝置的基本單元是位元組。2,塊裝置可以隨機訪問,字元裝置只能順序訪問。2 linux核心中塊裝置的描述 struct gendisk 裝置操作 struct block device operati...