主頁 > 知識庫 > Linux內(nèi)核設(shè)備驅(qū)動之proc文件系統(tǒng)筆記整理

Linux內(nèi)核設(shè)備驅(qū)動之proc文件系統(tǒng)筆記整理

熱門標(biāo)簽:涪陵商都400電話開通辦理 柳州市機(jī)器人外呼系統(tǒng)報價 廈門營銷外呼系統(tǒng)平臺 外呼系統(tǒng)不彈窗 云會外呼系統(tǒng) 申請400電話價格多少 安陽ai電銷機(jī)器人軟件 智能電話機(jī)器人坐席 外呼系統(tǒng)的經(jīng)營范圍
/*****************
 * proc文件系統(tǒng)
 *****************/

(1)/proc文件系統(tǒng)的特點和/proc文件的說明

/proc文件系統(tǒng)是一種特殊的、由軟件創(chuàng)建的文件系統(tǒng),內(nèi)核使用它向外界導(dǎo)出信息,/proc系統(tǒng)只存在內(nèi)存當(dāng)中,而不占用外存空間。

/proc下面的每個文件都綁定于一個內(nèi)核函數(shù),用戶讀取文件時,該函數(shù)動態(tài)地生成文件的內(nèi)容。也可以通過寫/proc文件修改內(nèi)核參數(shù)

/proc目錄下的文件分析  /proc/$pid 關(guān)于進(jìn)程$pid的信息目錄。每個進(jìn)程在/proc 下有一個名為其進(jìn)程號的目錄。例:$>strings -f /proc/[0-9]*/cmdline

  • /proc/cmdline  內(nèi)核啟動的命令行
  • /proc/cpuinfo  處理器信息,如類型、制造商、型號和性能。 
  • /proc/devices  列出字符和塊設(shè)備的主設(shè)備號,以及分配到這些設(shè)備號的設(shè)備名稱
  • /proc/dma  顯示當(dāng)前使用的DMA通道。 
  • /proc/filesystems  列出了可供使用的文件系統(tǒng)類型,通常是編入內(nèi)核的文件系統(tǒng)類型,但可以通過模塊加入新的類型
  • /proc/interrupts  顯示使用的中斷號,中斷名稱,以及這些中斷從系統(tǒng)啟動后產(chǎn)生的次數(shù)
  • /proc/ioports  當(dāng)前使用的I/O端口。 
  • /proc/kallsyms  內(nèi)核符號表。安裝新的模塊后,會在這里體現(xiàn)出來 
  • /proc/kcore  系統(tǒng)物理內(nèi)存映象。與物理內(nèi)存大小完全一樣,但不實際占用這么多內(nèi)存;(記住:除非拷貝到文件中,/proc下沒有任何東西占用任何磁盤空間) 
  • /proc/kmsg  內(nèi)核輸出的消息。也被送到syslog。 
  • /proc/loadavg  系統(tǒng)的平均負(fù)載,前3個是過去1分鐘,5分鐘,15分鐘的負(fù)載,然后是正在運行的任務(wù)數(shù)和總?cè)蝿?wù)數(shù),最后是上次運行的進(jìn)程號
  • /proc/meminfo  存儲器使用信息,包括物理內(nèi)存和swap。 
  • /proc/modules  當(dāng)前加載了哪些核心模塊。 
  • /proc/partitions  系統(tǒng)當(dāng)前掛載硬盤的分區(qū)信息
  • /proc/pci  系統(tǒng)的pci總線信息
  • /proc/net  網(wǎng)絡(luò)協(xié)議狀態(tài)信息。 
  • /proc/self  到查看/proc的程序的進(jìn)程目錄的符號連接。當(dāng)2個進(jìn)程查看/proc時,是不同的連接。這主要便于程序得到它自己的進(jìn)程目錄。
  • /proc/slabinfo  系統(tǒng)中slab緩存的分配信息
  • /proc/stat  系統(tǒng)的一些狀態(tài)信息
  • /proc/swaps  系統(tǒng)采用的交換區(qū)信息
  • /proc/sysrq-trigger  用于啟動sysRq鍵  $>echo 1 > sysrq-trigger
  • /proc/uptime  系統(tǒng)啟動的時間長度和空閑的時間長度。供uptime使用
  • /proc/version  內(nèi)核版本

(2)自行實現(xiàn)一個/proc文件

需包含頭文件<linux/proc_fs.h>,函數(shù)定義在/fs/proc/generic.c

a.在/proc下創(chuàng)建文件

調(diào)用create_proc_read_entry在/proc下創(chuàng)建新的文件

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.定義返回數(shù)據(jù)的函數(shù)

在進(jìn)程讀取/proc文件時,內(nèi)核會分配一個內(nèi)存頁(即PAGE_SIZE個字節(jié)的內(nèi)存塊),驅(qū)動將要寫的數(shù)據(jù)通過這個內(nèi)存頁返回到用戶空間。

typedef int (read_proc_t)(char *page, char **start, off_t off,
int count, int *eof, void *data);

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

標(biāo)簽:晉城 南充 綏化 巴中 福州 孝感 撫順 蕪湖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux內(nèi)核設(shè)備驅(qū)動之proc文件系統(tǒng)筆記整理》,本文關(guān)鍵詞  Linux,內(nèi)核,設(shè)備驅(qū)動,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux內(nèi)核設(shè)備驅(qū)動之proc文件系統(tǒng)筆記整理》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux內(nèi)核設(shè)備驅(qū)動之proc文件系統(tǒng)筆記整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章