在編譯模塊的時候,如果模塊加載成功。在/sys/module目錄中又模塊的信息。
/proc/modules包含所有模塊的信息。
/sys/module
/proc/modules
/sys/module
是一個 sysfs 目錄層次, 包含當前加載模塊的信息. /proc/moudles 是舊式的, 那種信息的單個文件版本.
其中的條目包含了模塊名, 每個模塊占用的內存數量, 以及使用計數. 另外的字串追加到每行的末尾來指定標志, 對這個模塊當前是活動的.
wugang@wugang-desktop:~$ cat /proc/modules
book 3200 0 - Live 0xe042e000
hello 2560 0 - Live 0xe02c3000
i915 32512 2 - Live 0xe0417000
其中 book(模塊名)?? 3200是模塊占用內存的大小。?? 0是模塊加載計數?? Live表示模塊可用
0xe042e000 肯定是模塊的起始地址。
在/sys/modules模塊的信息(新版)
來自內核源碼目錄的目標文件, 描述一個模塊為之建立的環境.
wugang@wugang-desktop:~$ cd /sys/module/book
wugang@wugang-desktop:/sys/module/book$ ls
holders? initstate? notes? parameters? refcnt? sections? srcversion
holders? 持有人,是寫本模塊的人。但是目錄為空。
initstate? 記錄模塊活動
notes?? 暫且沒有查到,好像是日記,有個隱藏文件,可能就是記錄本模塊的信息 *
parameters? 使用的變量
refcnt?? 模塊的加載計數
wugang@wugang-desktop:/sys/module/book/sections$ ls
__param? __versions
其中sections目錄中, __param是參數起始地址。
而sections目錄中,__versions?? 好像和版本有關 *
這兩個參數和地址有關。
srcversion??? BDF6D850ED985425407E440???? 模塊版本號 像模塊的ID一樣
打開/proc/kallsyms目錄下文件都是0字節,且打開為空白信息。
但是用cat命令,可以查看出里面的信息。
最后翻書,操作系統運行時,進程及內核信息(cpu,硬盤分區,內存信息)存放在這里。
/proc目錄為偽文件系統,proc并不是真正的文件系統,它存在于內存中。
而且/sys也是存在內存中。
-r--------?? 1 root?????? root?????? 528420864 2008-07-17 21:25 kcore
我機子上的,/proc文件目錄大小幾乎全部集中在那個文件中。
且無法用命令查看其中的信息.
/proc
文件系統是一種特殊的、由程序創建的文件系統,內核使用它向外界輸出信息。/proc
下面的每個文件都綁定于一個內核函數,這個函數在文件被讀取時,動態地生成文件的"內容",例如,/proc/modules
列出的是當前載入模塊的列表。這樣可以動態訪問其中進程和內核信息。
Linux系統對/proc的使用很頻繁。現代Linux系統中的很
多工具都是通過 /proc 來獲取它們的信息,例如 ps、top 和 uptime。有些設備驅動程序也通過 /proc
輸出信息,你的驅動程序當然也可以這么做。因為 /proc 文件系統是動態的,所以驅動程序模塊可以在任何時候添加或刪除其中的文件項。
特征完全的 /proc 文件項相當復雜;在所有的這些特征當中,有一點要指出的是,這些 /proc 文件不僅可以用于讀出數據,也可以用于寫入數據。不過,大多數時候,/proc 文件項是只讀文件。
注:*表示我不確定的問題,有問題請參考? module.h源代碼。
posted on 2010-03-09 13:56
deercoder 閱讀(1450)
評論(0) 編輯 收藏 引用 所屬分類:
Linux/Unix