日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设备类型分类

發布時間:2024/1/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设备类型分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《深入淺出XScale嵌入式系統》讀書筆記

1、字符設備是Linux最簡單的設備,可以像文件一樣訪問。初始化字符設備時,它的設備驅動程序向Linux登記,并在字符設備向量表中增加一個device_struct數據結構條目,這個設備的主設備號用來做這個向量表的索引。向量表中的每一個條目,一個device_struct數據結構包括兩個元素:登記設備驅動程序名稱的指針和指向一組文件的操作的指針。

設備注冊機構,內核提供一個字符設備注冊表,用于登記字符設備的相關信息。該數據結構在文件fs/device.C中定義,定義形式如下:

struct decice_struct{

? const char *name ?設備名稱

? struct file_operation * fops ?設備相關文件操作

字符設備登記表,負責登記各種字符設備的名字和對應的操作

static struct device_struct chrdevs[MAX_CHRDEV]={{NULL,NULL},}

2、快設備

塊設備是文件系統的基礎,它也可以像文件一樣被訪問。Linux用blkdevs向量表維護已經登記的塊設備文件。它像chrdevs向量表一樣,使用設備的主設備號作為索引。它的條目也是數據結構。與字符設備不同的是,塊設備分為SCSI和IDE類;向Linux內核登記并向核心提供文件操作。

3、塊設備與字符設備的主要區別:

對字符設備發出讀、寫請求時,實際的硬件I/O一般緊接著就發生了。塊設備則不然,它利用一塊系統內存作為緩沖區,當用戶進程對設備的請求能滿足用戶的要求時,就返回請求的數據,如果不能,就調用請求函數來進行實際的I/O操作。

4、Linux將設備看成文件,系統支持的所有設備都必須以特殊文件的形式出現在文件系統中。說是“特殊文件”,是因為這些文件只有文件名而沒有正文。這是因為,這種“文件”所要運載和提供的信息只有三項,即目標設備所屬的類(塊設備和字符設備)及其主設備號和次設備號,而這些信息完全可以放在文件的“目錄項”中。

打開文件的過程就可以大致描述如下:

1、根據約定的設備文件名,在文件系統中找到目錄文件的目錄項,從中取得目標設備的主/次設備號。

2、在本進程的file結構數組中分配一個空閑的file結構數組,其下標即為“打開文件號”。如前所述,打開文件號只對本進程有意義。

3、根據目標設備的類別和主設備號找到相應的file_operations結構,并將其地址記錄在file結構中。同時,把與目錄項有關的數據結構的地址也記錄在file結構中,以便獲得其次設備號。

總結

以上是生活随笔為你收集整理的设备类型分类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。