免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Linux驅(qū)動基礎(chǔ)

Linux驅(qū)動基礎(chǔ)-Linux中設(shè)備分類

Linux系統(tǒng)上每一個設(shè)備的運行都有其固定的規(guī)則,而且設(shè)備種類、型號眾多,將每一個設(shè)備的固定規(guī)則寫入內(nèi)核是不現(xiàn)實的,也是沒有意義的。所以每一個設(shè)備都會有相對應(yīng)的驅(qū)動,小到一個led燈,大到一個網(wǎng)卡,都要有相關(guān)的驅(qū)動。驅(qū)動程序可以看做是應(yīng)用程序和實際設(shè)備之間的一個軟件層。應(yīng)用程序控制一個設(shè)備,首先要向驅(qū)動發(fā)出信號,驅(qū)動接收到信號再控制設(shè)備完成相對應(yīng)的動作。應(yīng)用程序想要獲取設(shè)備采集的數(shù)據(jù)同樣也是要經(jīng)過驅(qū)動來完成。

Linux中設(shè)備分類

Linux系統(tǒng)將設(shè)備分成三個基本類型,每個模塊通常實現(xiàn)為其中某一類。

1、字符設(shè)備

字符設(shè)備是一個能夠像字節(jié)流一樣被訪問的設(shè)備,由字符設(shè)備驅(qū)動程序來實現(xiàn)這種特性。字符設(shè)備驅(qū)動程序通常至少要實現(xiàn)打開、關(guān)閉、讀取和寫入系統(tǒng)調(diào)用。字符設(shè)備是一個順序訪問的,只有在設(shè)備響應(yīng)后才能讀到相應(yīng)信息。不能隨機(jī)訪問,且每個字符設(shè)備都有一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。常見的字符設(shè)備如串口、IIC等。字符設(shè)備的對應(yīng)的文件都在/dev目錄下,每一個文件對應(yīng)一個硬件。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“c”為字符設(shè)備文件的標(biāo)識。

 

2、塊設(shè)備

和字符設(shè)備類似,塊設(shè)備也是通過/dev目錄下的文件系統(tǒng)節(jié)點來訪問。塊設(shè)備上能夠容納文件系統(tǒng)。常見的塊設(shè)備如磁盤、emmc  flash、nand  flash、 SD卡等。每個塊設(shè)備同樣有r--+’/h渦陽【5片【一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“b”為塊設(shè)備文件的標(biāo)識。/dev下每個塊設(shè)備文件對應(yīng)一個磁盤的分區(qū)。

 

3、網(wǎng)絡(luò)設(shè)備

任何網(wǎng)絡(luò)相關(guān)的事務(wù)都要經(jīng)過一個網(wǎng)絡(luò)接口,即一個能夠與其他主機(jī)交換數(shù)據(jù)的設(shè)備。通常,接口是個硬件設(shè)備,但也可能是純軟件設(shè)備,比如在ifconfig查看網(wǎng)口信息的時候有一個lo,就是網(wǎng)絡(luò)回環(huán)(loopback)接口。訪問網(wǎng)絡(luò)接口的方法是給它們分配一個唯一的名字,比如eth0、eth1、lo等。但這個名字在文件系統(tǒng)中不存在相應(yīng)的節(jié)點。網(wǎng)絡(luò)接口沒有像字符設(shè)備和塊設(shè)備一樣的設(shè)備號,只有一個唯一的名字,如eth0、eth1等,而這個名字也不需要與設(shè)備文件節(jié)點對應(yīng)。內(nèi)核使用一套與數(shù)據(jù)包傳輸相關(guān)的函數(shù)來與網(wǎng)絡(luò)設(shè)備驅(qū)動程序通信,它們不同于字符設(shè)備和塊設(shè)備的read()和write()方法。


 

各種字符設(shè)備和塊設(shè)備都體現(xiàn)了linux“一切都是文件的”的設(shè)計思想,網(wǎng)絡(luò)設(shè)備是唯一沒有體現(xiàn)這一思想的設(shè)備。

設(shè)備節(jié)點、設(shè)備驅(qū)動及設(shè)備的關(guān)聯(lián)

整個系統(tǒng)上掛載的設(shè)備很多,當(dāng)我們訪問一個設(shè)備節(jié)點時,系統(tǒng)是如何知道使用哪個設(shè)備驅(qū)動及訪問哪個設(shè)備的呢?這個是通過設(shè)備號來實現(xiàn)的。創(chuàng)建一個設(shè)備節(jié)點時需要指定主設(shè)備號和次設(shè)備號。對于設(shè)備節(jié)點來說,名字不是重要的,設(shè)備號才是最重要的,它實際指定了對應(yīng)的驅(qū)動程序和對應(yīng)的設(shè)備。主設(shè)備號用來區(qū)分不同種類的設(shè)備,而次設(shè)備號用來區(qū)分同一類型的多個設(shè)備。對于常用設(shè)備,Linux有約定俗成的編號,如硬盤的主設(shè)備號是3。在/dev目錄下使用命令ls -l加名字可查看相應(yīng)的主設(shè)備號和次設(shè)備號。

 

主設(shè)備號

驅(qū)動程序在初始化時,會注冊它的驅(qū)動及對應(yīng)主設(shè)備號到系統(tǒng)中,這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時,系統(tǒng)就知道它所訪問的驅(qū)動程序了??梢酝ㄟ^/proc/devices文件來驅(qū)動系統(tǒng)設(shè)備的主設(shè)備號。

 

次設(shè)備號

驅(qū)動程序運行時,每發(fā)現(xiàn)一個它能驅(qū)動的設(shè)備,就會創(chuàng)建一個設(shè)備對象,并為其分配一個次設(shè)備號以區(qū)分不同的設(shè)備。這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時驅(qū)動程序就可以根據(jù)次設(shè)備號知道它所訪問的設(shè)備了。

Linux驅(qū)動基礎(chǔ)-Linux中設(shè)備分類

Linux系統(tǒng)上每一個設(shè)備的運行都有其固定的規(guī)則,而且設(shè)備種類、型號眾多,將每一個設(shè)備的固定規(guī)則寫入內(nèi)核是不現(xiàn)實的,也是沒有意義的。所以每一個設(shè)備都會有相對應(yīng)的驅(qū)動,小到一個led燈,大到一個網(wǎng)卡,都要有相關(guān)的驅(qū)動。驅(qū)動程序可以看做是應(yīng)用程序和實際設(shè)備之間的一個軟件層。應(yīng)用程序控制一個設(shè)備,首先要向驅(qū)動發(fā)出信號,驅(qū)動接收到信號再控制設(shè)備完成相對應(yīng)的動作。應(yīng)用程序想要獲取設(shè)備采集的數(shù)據(jù)同樣也是要經(jīng)過驅(qū)動來完成。

Linux中設(shè)備分類

Linux系統(tǒng)將設(shè)備分成三個基本類型,每個模塊通常實現(xiàn)為其中某一類。

1、字符設(shè)備

字符設(shè)備是一個能夠像字節(jié)流一樣被訪問的設(shè)備,由字符設(shè)備驅(qū)動程序來實現(xiàn)這種特性。字符設(shè)備驅(qū)動程序通常至少要實現(xiàn)打開、關(guān)閉、讀取和寫入系統(tǒng)調(diào)用。字符設(shè)備是一個順序訪問的,只有在設(shè)備響應(yīng)后才能讀到相應(yīng)信息。不能隨機(jī)訪問,且每個字符設(shè)備都有一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。常見的字符設(shè)備如串口、IIC等。字符設(shè)備的對應(yīng)的文件都在/dev目錄下,每一個文件對應(yīng)一個硬件。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“c”為字符設(shè)備文件的標(biāo)識。

 

2、塊設(shè)備

和字符設(shè)備類似,塊設(shè)備也是通過/dev目錄下的文件系統(tǒng)節(jié)點來訪問。塊設(shè)備上能夠容納文件系統(tǒng)。常見的塊設(shè)備如磁盤、emmc  flash、nand  flash、 SD卡等。每個塊設(shè)備同樣有r--+’/h渦陽【5片【一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“b”為塊設(shè)備文件的標(biāo)識。/dev下每個塊設(shè)備文件對應(yīng)一個磁盤的分區(qū)。

 

3、網(wǎng)絡(luò)設(shè)備

任何網(wǎng)絡(luò)相關(guān)的事務(wù)都要經(jīng)過一個網(wǎng)絡(luò)接口,即一個能夠與其他主機(jī)交換數(shù)據(jù)的設(shè)備。通常,接口是個硬件設(shè)備,但也可能是純軟件設(shè)備,比如在ifconfig查看網(wǎng)口信息的時候有一個lo,就是網(wǎng)絡(luò)回環(huán)(loopback)接口。訪問網(wǎng)絡(luò)接口的方法是給它們分配一個唯一的名字,比如eth0、eth1、lo等。但這個名字在文件系統(tǒng)中不存在相應(yīng)的節(jié)點。網(wǎng)絡(luò)接口沒有像字符設(shè)備和塊設(shè)備一樣的設(shè)備號,只有一個唯一的名字,如eth0、eth1等,而這個名字也不需要與設(shè)備文件節(jié)點對應(yīng)。內(nèi)核使用一套與數(shù)據(jù)包傳輸相關(guān)的函數(shù)來與網(wǎng)絡(luò)設(shè)備驅(qū)動程序通信,它們不同于字符設(shè)備和塊設(shè)備的read()和write()方法。


 

各種字符設(shè)備和塊設(shè)備都體現(xiàn)了linux“一切都是文件的”的設(shè)計思想,網(wǎng)絡(luò)設(shè)備是唯一沒有體現(xiàn)這一思想的設(shè)備。

設(shè)備節(jié)點、設(shè)備驅(qū)動及設(shè)備的關(guān)聯(lián)

整個系統(tǒng)上掛載的設(shè)備很多,當(dāng)我們訪問一個設(shè)備節(jié)點時,系統(tǒng)是如何知道使用哪個設(shè)備驅(qū)動及訪問哪個設(shè)備的呢?這個是通過設(shè)備號來實現(xiàn)的。創(chuàng)建一個設(shè)備節(jié)點時需要指定主設(shè)備號和次設(shè)備號。對于設(shè)備節(jié)點來說,名字不是重要的,設(shè)備號才是最重要的,它實際指定了對應(yīng)的驅(qū)動程序和對應(yīng)的設(shè)備。主設(shè)備號用來區(qū)分不同種類的設(shè)備,而次設(shè)備號用來區(qū)分同一類型的多個設(shè)備。對于常用設(shè)備,Linux有約定俗成的編號,如硬盤的主設(shè)備號是3。在/dev目錄下使用命令ls -l加名字可查看相應(yīng)的主設(shè)備號和次設(shè)備號。

 

主設(shè)備號

驅(qū)動程序在初始化時,會注冊它的驅(qū)動及對應(yīng)主設(shè)備號到系統(tǒng)中,這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時,系統(tǒng)就知道它所訪問的驅(qū)動程序了。可以通過/proc/devices文件來驅(qū)動系統(tǒng)設(shè)備的主設(shè)備號。

 

次設(shè)備號

驅(qū)動程序運行時,每發(fā)現(xiàn)一個它能驅(qū)動的設(shè)備,就會創(chuàng)建一個設(shè)備對象,并為其分配一個次設(shè)備號以區(qū)分不同的設(shè)備。這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時驅(qū)動程序就可以根據(jù)次設(shè)備號知道它所訪問的設(shè)備了。

Linux驅(qū)動基礎(chǔ)-Linux中設(shè)備分類

Linux系統(tǒng)上每一個設(shè)備的運行都有其固定的規(guī)則,而且設(shè)備種類、型號眾多,將每一個設(shè)備的固定規(guī)則寫入內(nèi)核是不現(xiàn)實的,也是沒有意義的。所以每一個設(shè)備都會有相對應(yīng)的驅(qū)動,小到一個led燈,大到一個網(wǎng)卡,都要有相關(guān)的驅(qū)動。驅(qū)動程序可以看做是應(yīng)用程序和實際設(shè)備之間的一個軟件層。應(yīng)用程序控制一個設(shè)備,首先要向驅(qū)動發(fā)出信號,驅(qū)動接收到信號再控制設(shè)備完成相對應(yīng)的動作。應(yīng)用程序想要獲取設(shè)備采集的數(shù)據(jù)同樣也是要經(jīng)過驅(qū)動來完成。

Linux中設(shè)備分類

Linux系統(tǒng)將設(shè)備分成三個基本類型,每個模塊通常實現(xiàn)為其中某一類。

1、字符設(shè)備

字符設(shè)備是一個能夠像字節(jié)流一樣被訪問的設(shè)備,由字符設(shè)備驅(qū)動程序來實現(xiàn)這種特性。字符設(shè)備驅(qū)動程序通常至少要實現(xiàn)打開、關(guān)閉、讀取和寫入系統(tǒng)調(diào)用。字符設(shè)備是一個順序訪問的,只有在設(shè)備響應(yīng)后才能讀到相應(yīng)信息。不能隨機(jī)訪問,且每個字符設(shè)備都有一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。常見的字符設(shè)備如串口、IIC等。字符設(shè)備的對應(yīng)的文件都在/dev目錄下,每一個文件對應(yīng)一個硬件。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“c”為字符設(shè)備文件的標(biāo)識。

 

2、塊設(shè)備

和字符設(shè)備類似,塊設(shè)備也是通過/dev目錄下的文件系統(tǒng)節(jié)點來訪問。塊設(shè)備上能夠容納文件系統(tǒng)。常見的塊設(shè)備如磁盤、emmc  flash、nand  flash、 SD卡等。每個塊設(shè)備同樣有r--+’/h渦陽【5片【一個設(shè)備號,設(shè)備號由主設(shè)備號和次設(shè)備號組成。在linux系統(tǒng)中/dev目錄下使用ls -l命令查看詳細(xì)信息,第一個字母“b”為塊設(shè)備文件的標(biāo)識。/dev下每個塊設(shè)備文件對應(yīng)一個磁盤的分區(qū)。

 

3、網(wǎng)絡(luò)設(shè)備

任何網(wǎng)絡(luò)相關(guān)的事務(wù)都要經(jīng)過一個網(wǎng)絡(luò)接口,即一個能夠與其他主機(jī)交換數(shù)據(jù)的設(shè)備。通常,接口是個硬件設(shè)備,但也可能是純軟件設(shè)備,比如在ifconfig查看網(wǎng)口信息的時候有一個lo,就是網(wǎng)絡(luò)回環(huán)(loopback)接口。訪問網(wǎng)絡(luò)接口的方法是給它們分配一個唯一的名字,比如eth0、eth1、lo等。但這個名字在文件系統(tǒng)中不存在相應(yīng)的節(jié)點。網(wǎng)絡(luò)接口沒有像字符設(shè)備和塊設(shè)備一樣的設(shè)備號,只有一個唯一的名字,如eth0、eth1等,而這個名字也不需要與設(shè)備文件節(jié)點對應(yīng)。內(nèi)核使用一套與數(shù)據(jù)包傳輸相關(guān)的函數(shù)來與網(wǎng)絡(luò)設(shè)備驅(qū)動程序通信,它們不同于字符設(shè)備和塊設(shè)備的read()和write()方法。


 

各種字符設(shè)備和塊設(shè)備都體現(xiàn)了linux“一切都是文件的”的設(shè)計思想,網(wǎng)絡(luò)設(shè)備是唯一沒有體現(xiàn)這一思想的設(shè)備。

設(shè)備節(jié)點、設(shè)備驅(qū)動及設(shè)備的關(guān)聯(lián)

整個系統(tǒng)上掛載的設(shè)備很多,當(dāng)我們訪問一個設(shè)備節(jié)點時,系統(tǒng)是如何知道使用哪個設(shè)備驅(qū)動及訪問哪個設(shè)備的呢?這個是通過設(shè)備號來實現(xiàn)的。創(chuàng)建一個設(shè)備節(jié)點時需要指定主設(shè)備號和次設(shè)備號。對于設(shè)備節(jié)點來說,名字不是重要的,設(shè)備號才是最重要的,它實際指定了對應(yīng)的驅(qū)動程序和對應(yīng)的設(shè)備。主設(shè)備號用來區(qū)分不同種類的設(shè)備,而次設(shè)備號用來區(qū)分同一類型的多個設(shè)備。對于常用設(shè)備,Linux有約定俗成的編號,如硬盤的主設(shè)備號是3。在/dev目錄下使用命令ls -l加名字可查看相應(yīng)的主設(shè)備號和次設(shè)備號。

 

主設(shè)備號

驅(qū)動程序在初始化時,會注冊它的驅(qū)動及對應(yīng)主設(shè)備號到系統(tǒng)中,這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時,系統(tǒng)就知道它所訪問的驅(qū)動程序了??梢酝ㄟ^/proc/devices文件來驅(qū)動系統(tǒng)設(shè)備的主設(shè)備號。

 

次設(shè)備號

驅(qū)動程序運行時,每發(fā)現(xiàn)一個它能驅(qū)動的設(shè)備,就會創(chuàng)建一個設(shè)備對象,并為其分配一個次設(shè)備號以區(qū)分不同的設(shè)備。這樣當(dāng)應(yīng)用程序訪問設(shè)備節(jié)點時驅(qū)動程序就可以根據(jù)次設(shè)備號知道它所訪問的設(shè)備了。                     

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
十一、Linux驅(qū)動程序開發(fā)(1) - 設(shè)備與驅(qū)動的關(guān)系以及設(shè)備號、設(shè)備文件
Linux字符設(shè)備驅(qū)動程序編寫基本流程
第三章 字符設(shè)備驅(qū)動程序|Linux.CN
linux驅(qū)動基礎(chǔ)開發(fā)1——linux 設(shè)備驅(qū)動基本概念
通過一個LED驅(qū)動程序開始學(xué)寫Linux字符設(shè)備驅(qū)動
Linux中級“驅(qū)動”控制硬件必須學(xué)會的底層知識
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服