這篇文章主要為大家展示了“Linux內核設備驅動之proc文件系統的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux內核設備驅動之proc文件系統的示例分析”這篇文章吧。
/***************** * proc文件系統 *****************/
(1)/proc文件系統的特點和/proc文件的說明
/proc文件系統是一種特殊的、由軟件創建的文件系統,內核使用它向外界導出信息,/proc系統只存在內存當中,而不占用外存空間。
/proc下面的每個文件都綁定于一個內核函數,用戶讀取文件時,該函數動態地生成文件的內容。也可以通過寫/proc文件修改內核參數
/proc目錄下的文件分析 /proc/$pid 關于進程$pid的信息目錄。每個進程在/proc 下有一個名為其進程號的目錄。例:$>strings -f /proc/[0-9]*/cmdline
/proc/cmdline 內核啟動的命令行
/proc/cpuinfo 處理器信息,如類型、制造商、型號和性能。
/proc/devices 列出字符和塊設備的主設備號,以及分配到這些設備號的設備名稱
/proc/dma 顯示當前使用的DMA通道。
/proc/filesystems 列出了可供使用的文件系統類型,通常是編入內核的文件系統類型,但可以通過模塊加入新的類型
/proc/interrupts 顯示使用的中斷號,中斷名稱,以及這些中斷從系統啟動后產生的次數
/proc/ioports 當前使用的I/O端口。
/proc/kallsyms 內核符號表。安裝新的模塊后,會在這里體現出來
/proc/kcore 系統物理內存映象。與物理內存大小完全一樣,但不實際占用這么多內存;(記?。撼强截惖轿募?,/proc下沒有任何東西占用任何磁盤空間)
/proc/kmsg 內核輸出的消息。也被送到syslog。
/proc/loadavg 系統的平均負載,前3個是過去1分鐘,5分鐘,15分鐘的負載,然后是正在運行的任務數和總任務數,最后是上次運行的進程號
/proc/meminfo 存儲器使用信息,包括物理內存和swap。
/proc/modules 當前加載了哪些核心模塊。
/proc/partitions 系統當前掛載硬盤的分區信息
/proc/pci 系統的pci總線信息
/proc/net 網絡協議狀態信息。
/proc/self 到查看/proc的程序的進程目錄的符號連接。當2個進程查看/proc時,是不同的連接。這主要便于程序得到它自己的進程目錄。
/proc/slabinfo 系統中slab緩存的分配信息
/proc/stat 系統的一些狀態信息
/proc/swaps 系統采用的交換區信息
/proc/sysrq-trigger 用于啟動sysRq鍵 $>echo 1 > sysrq-trigger
/proc/uptime 系統啟動的時間長度和空閑的時間長度。供uptime使用
/proc/version 內核版本
(2)自行實現一個/proc文件
需包含頭文件<linux/proc_fs.h>,函數定義在/fs/proc/generic.c
a.在/proc下創建文件
調用create_proc_read_entry在/proc下創建新的文件
struct proc_dir_entry *create_proc_read_entry( const char *name, mode_t mode, struct proc_dir_entry *base, read_proc_t *read_proc, void * data)
b.卸載/proc下的文件
采用remove_proc_entry卸載proc文件
void remove_proc_entry( const char *name, struct proc_dir_entry *parent);
c.定義返回數據的函數
在進程讀取/proc文件時,內核會分配一個內存頁(即PAGE_SIZE個字節的內存塊),驅動將要寫的數據通過這個內存頁返回到用戶空間。
typedef int (read_proc_t)(char *page, char **start, off_t off, int count, int *eof, void *data);
以上是“Linux內核設備驅動之proc文件系統的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。