Linux裝置節點

大夢人生發表於2020-10-22

裝置節點分類:

字元裝置(c)(無緩衝且只能順序存取)

塊裝置(b)(有緩衝且可以隨機存取)

 

節點:

節點指的是一個入口,我們通過這樣的入口來達到操作(讀、寫等)某裝置的目的,而之所以要統一在/dev下搞那麼多所謂“入口”,是因為Linux系統提供所謂虛擬檔案系統,它可以幫助我們使用一致的函式介面(open()、read()、write()、close()……)等來操作各種不同的裝置,大大降低了應用程式訪問Linux外圍裝置的複雜性。

 

裝置節點兩種建立方法:

1、手動建立裝置節點:

比如建立一個主次裝置號分別為3和18的字元裝置,所使用的命令是:

sudo mknod /dev/somedevice c 3 18

2、在載入驅動程式時自動建立

Linux核心提供了一組函式,可以在模組載入時自動在/dev目錄下建立相對應的裝置節點,並在解除安裝模組時刪除該節點,能實現這樣操作的前提是使用者空間已經移植了udev(簡化版本的mdev)。相關的函式和結構:(1)struct class,是一個裝置結構體,註冊一個類結構,會在/sys/class目錄下建立對應的資料夾,資料夾中儲存有在/dev目錄下自動生成裝置節點的資訊。(2)struct class_device結構體。

 

裝置節點的作用

裝置節點使得使用者可以與核心進行硬體的溝通,讀寫裝置以及其他的操作

在linux裡面裝置就像是普通檔案一樣的存在,訪問一個裝置就好像是訪問一個檔案一樣

主裝置號代表著一類裝置,次裝置號代表著同一類裝置的不同個體,說到這裡也許並不知道裝置節點的存在形式

 

tty:

Teletype的縮寫

 

Linux中的裝置節點說明:

https://my.oschina.net/luqili/blog/1560559

 

字元裝置的兩種建立方法:

https://blog.51cto.com/10274409/1721711

相關文章