請問:linux環境下,/dev/目錄下的內容與/proc/下檔案devices中的內容有什麼區別?我在目
標板上做實驗時發現,當我向板子上載入驅動模組時,devices檔案中有變化,而/dev下根本沒有變化,/dev/下不也應該是裝置接點嗎,為什麼為
模組建立裝置接點時,/dev/下卻沒有變化呢?
請各位幫幫忙,謝謝!!!
/proc/devices/中的裝置是通過insmod載入到核心的,它可產生一個major供mknod作為
參數。
/dev/*.* 是通過mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1 c
254 0,使用者通過此裝置名稱來訪問你的驅動。
裝置
檔案
,裝置編號 #ll -a /dev
在每一行都可以看到裝置檔案、裝置編號(主、次)
對於每種硬體裝置,系統核心有相應的裝置驅動程式負責對它的處理。而在Unix
中,使用裝置檔案的方式來表示硬體裝置,每種裝置驅動程式都被抽象
為裝置檔案的形式,這樣就給應用程式一個一致的檔案介面,方便應用程式和作業系統之間的通訊。
習慣上,所有的裝置檔案
都放置在/dev
目錄下。
/proc/devices/中的裝置是通過insmod載入到核心的,它可產生一個major供mknod作為 參數
。
/dev/*.* 是通過mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1 c
254 0,使用者通過此裝置名稱來訪問你的驅動。
mknod - make block or
character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
option 有用的就是 -m 了
name 自訂
type 有 b 和 c 還有 p
主裝置號
次裝置號
主
裝置號是由/usr/src/linux/include/linux/major.h定義的,如下定義了一個DOC裝置:
#define
IGEL_FLASH_MAJOR 62
假如有一個命令mknod doc b 62 0 :
其中的doc為定義的名
字,b指塊裝置,0指的是整個DOC。如果把0換為1,則1指的是DOC的第一個分區。2是第2個,依次類推。