Linux內(nèi)核設(shè)備驅(qū)動(dòng)之proc文件系統(tǒng)筆記整理
/***************** * proc文件系統(tǒng) *****************/
(1)/proc文件系統(tǒng)的特點(diǎn)和/proc文件的說明
/proc文件系統(tǒng)是一種特殊的、由軟件創(chuàng)建的文件系統(tǒng),內(nèi)核使用它向外界導(dǎo)出信息,/proc系統(tǒng)只存在內(nèi)存當(dāng)中,而不占用外存空間。
/proc下面的每個(gè)文件都綁定于一個(gè)內(nèi)核函數(shù),用戶讀取文件時(shí),該函數(shù)動(dòng)態(tài)地生成文件的內(nèi)容。也可以通過寫/proc文件修改內(nèi)核參數(shù)
/proc目錄下的文件分析 /proc/$pid 關(guān)于進(jìn)程$pid的信息目錄。每個(gè)進(jìn)程在/proc 下有一個(gè)名為其進(jìn)程號(hào)的目錄。例:$>strings -f /proc/[0-9]*/cmdline
- /proc/cmdline 內(nèi)核啟動(dòng)的命令行
- /proc/cpuinfo 處理器信息,如類型、制造商、型號(hào)和性能。
- /proc/devices 列出字符和塊設(shè)備的主設(shè)備號(hào),以及分配到這些設(shè)備號(hào)的設(shè)備名稱
- /proc/dma 顯示當(dāng)前使用的DMA通道。
- /proc/filesystems 列出了可供使用的文件系統(tǒng)類型,通常是編入內(nèi)核的文件系統(tǒng)類型,但可以通過模塊加入新的類型
- /proc/interrupts 顯示使用的中斷號(hào),中斷名稱,以及這些中斷從系統(tǒng)啟動(dòng)后產(chǎn)生的次數(shù)
- /proc/ioports 當(dāng)前使用的I/O端口。
- /proc/kallsyms 內(nèi)核符號(hào)表。安裝新的模塊后,會(huì)在這里體現(xiàn)出來
- /proc/kcore 系統(tǒng)物理內(nèi)存映象。與物理內(nèi)存大小完全一樣,但不實(shí)際占用這么多內(nèi)存;(記?。撼强截惖轿募校?proc下沒有任何東西占用任何磁盤空間)
- /proc/kmsg 內(nèi)核輸出的消息。也被送到syslog。
- /proc/loadavg 系統(tǒng)的平均負(fù)載,前3個(gè)是過去1分鐘,5分鐘,15分鐘的負(fù)載,然后是正在運(yùn)行的任務(wù)數(shù)和總?cè)蝿?wù)數(shù),最后是上次運(yùn)行的進(jìn)程號(hào)
- /proc/meminfo 存儲(chǔ)器使用信息,包括物理內(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)程目錄的符號(hào)連接。當(dāng)2個(gè)進(jìn)程查看/proc時(shí),是不同的連接。這主要便于程序得到它自己的進(jìn)程目錄。
- /proc/slabinfo 系統(tǒng)中slab緩存的分配信息
- /proc/stat 系統(tǒng)的一些狀態(tài)信息
- /proc/swaps 系統(tǒng)采用的交換區(qū)信息
- /proc/sysrq-trigger 用于啟動(dòng)sysRq鍵 $>echo 1 > sysrq-trigger
- /proc/uptime 系統(tǒng)啟動(dòng)的時(shí)間長度和空閑的時(shí)間長度。供uptime使用
- /proc/version 內(nèi)核版本
(2)自行實(shí)現(xiàn)一個(gè)/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.定義返回?cái)?shù)據(jù)的函數(shù)
在進(jìn)程讀取/proc文件時(shí),內(nèi)核會(huì)分配一個(gè)內(nèi)存頁(即PAGE_SIZE個(gè)字節(jié)的內(nèi)存塊),驅(qū)動(dòng)將要寫的數(shù)據(jù)通過這個(gè)內(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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)核的時(shí)間管理筆記整理
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之字符設(shè)備驅(qū)動(dòng)筆記整理
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之虛擬文件系統(tǒng)筆記整理
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)核的調(diào)試技術(shù)筆記整理
- Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)核中鏈表的使用筆記整理
- 詳解linux 攝像頭驅(qū)動(dòng)編寫
- Linux實(shí)現(xiàn)驅(qū)動(dòng)模塊傳參過程解析
相關(guān)文章
centos配置mutt和msmtp實(shí)現(xiàn)郵件發(fā)送
這篇文章主要為大家詳細(xì)介紹了centos配置mutt和msmtp實(shí)現(xiàn)郵件發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11linux Apache服務(wù)器系統(tǒng)安全設(shè)置與優(yōu)化
結(jié)合,mod_gzip 和緩沖工具等,我們完全可以使一臺(tái)配置較低的 PC 有足夠的能力處理各種 HTML/CGI 等的請(qǐng)求。2008-07-07CentOS 7安裝Mysql并設(shè)置開機(jī)自啟動(dòng)的方法
本篇文章主要介紹了CentOS 7安裝Mysql并設(shè)置開機(jī)自啟動(dòng)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02改造ctrl+alt+del(默認(rèn)重啟)為一個(gè)信息搜集腳本的腳本
遠(yuǎn)程一個(gè)服務(wù)器總是出現(xiàn)網(wǎng)絡(luò)故障,因?yàn)椴环奖阕孖DC工程師做太詳細(xì)的操作,每次都是讓他按ctrl+alt+del重啟服務(wù)器,最后寫了這么一個(gè)腳本,實(shí)現(xiàn)的效果是2011-05-05Ubuntu虛擬機(jī)下使用cutecom進(jìn)行串口通信的方法
今天小編就為大家分享一篇關(guān)于Ubuntu虛擬機(jī)下使用cutecom進(jìn)行串口通信的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01Centos 6.4 安裝Python 2.7 python-pip的詳細(xì)步驟
這篇文章主要介紹了Centos 6.4 安裝Python 2.7 python-pip的詳細(xì)步驟,需要的朋友可以參考下2017-03-03sersync2 完全安裝配置說明(三) 插件基本配置和使用
sersync2 完全安裝配置說明(三) 插件基本配置和使用,需要的朋友可以參考下。2011-11-11Ubuntu 16.04安裝搜狗拼音輸入法錯(cuò)誤問題的解決方法
目前來說搜狗輸入法是市場(chǎng)上最為好用和流行的輸入法,最為良心的是還有Linux版本,這讓眾多Linux人士歡呼雀躍。最近在新出的Ubuntu 16.04上安裝sogou輸入法的時(shí)候,碰到了一些問題,主要還是依賴包沒有正確安裝,下面讓我們一起來看如何來解決這個(gè)問題。2016-11-11