linux中的mknod命令的詳細解釋
linux中的mknod命令的詳細解釋
linxu下的mknod命令主要是用于創(chuàng)建Linux中的字符設備文件和塊設備文件。下面由學習啦小編為大家整理了linux的mknod命令的詳細解釋的相關知識,希望對大家有幫助!
一、linux中的mknod命令的詳細解釋
mknod命令用于創(chuàng)建Linux中的字符設備文件和塊設備文件。
語法
mknod(選項)(參數)
選項
-Z:設置安全的上下文;
-m:設置權限模式;
-help:顯示幫助信息;
--version:顯示版本信息。
參數
文件名:要創(chuàng)建的設備文件名;
類型:指定要創(chuàng)建的設備文件的類型;
主設備號:指定設備文件的主設備號;
次設備號:指定設備文件的次設備號。
二、Linux中的mknod命令用法詳解
mknod 的標準形式為: mknod DEVNAME {b | c} MAJOR MINOR
1,DEVNAME是要創(chuàng)建的設備文件名,如果想將設備文件放在一個特定的文件夾下,就需要先用mkdir在dev目錄下新建一個目錄;
2, b和c 分別表示塊設備和字符設備:
b表示系統從塊設備中讀取數據的時候,直接從內存的buffer中讀取數據,而不經過磁盤;
c表示字符設備文件與設備傳送數據的時候是以字符的形式傳送,一次傳送一個字符,比如打印機、終端都是以字符的形式傳送數據;
3,MAJOR和MINOR分別表示主設備號和次設備號:
為了管理設備,系統為每個設備分配一個編號,一個設備號由主設備號和次設備號組成。主設備號標示某一種類的設備,次設備號用來區(qū)分同一類型的設備。linux操作系統中為設備文件編號分配了32位無符號整數,其中前12位是主設備號,后20位為次設備號,所以在向系統申請設備文件時主設備號不好超過4095,次設備號不好超過2^20 -1。
.
下面,我們就可以用mknod命令來申請設備文件了。
mkdir -p /dev/cobing
mknod /dev/cobing/mydev1 c 128 512
三、Linux中的mknod命令知識擴展
Linux的設備管理是和文件系統緊密結合的,各種設備都以文件的形式存放在/dev目錄 下,稱為設備文件。應用程序可以打開、關閉和讀寫這些設備文件,完成對設備的操作,就像操作普通的數據文件一樣。
為了管理這些設備,系統為設備編了號,每 個設備號又分為主設備號和次設備號。主設備號用來區(qū)分不同種類的設備,而次設備號用來區(qū)分同一類型的多個設備。對于常用設備,Linux有約定俗成的編 號,如硬盤的主設備號是3。
Linux為所有的設備文件都提供了統一的操作函數接口,方法是使用數據結構struct file_operations。這個數據結構中包括許多操作函數的指針,如open()、close()、read()和write()等,但由于外設 的種類較多,操作方式各不相同。Struct file_operations結構體中的成員為一系列的接口函數,如用于讀/寫的read/write函數和用于控制的ioctl等。
打開一個文件就是調用這個文件file_operations中的open操作。不同類型的文件有不同的file_operations成員函數,如普通的磁盤數據文件, 接口函數完成磁盤數據塊讀寫操作;而對于各種設備文件,則最終調用各自驅動程序中的I/O函數進行具體設備的操作。這樣,應用程序根本不必考慮操作的是設 備還是普通文件,可一律當作文件處理,具有非常清晰統一的I/O接口。所以file_operations是文件層次的I/O接口。