/***************** * 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
(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)。