proc檔案系統是一種在使用者態檢查核心狀態機制.
子目錄:
apm:高階電源管理資訊.
bus:匯流排以及匯流排上的裝置.
devices:可用的裝置資訊.
driver:已經啟動的驅動程式.
interrupts:中斷資訊.
ioports:埠使用資訊.
version:核心版本.
特點:
1.可用文字編輯程式讀取. (more ,cat , vi , and so on)
2.不僅可以有檔案,還可以有子目錄.
3.自己可以編寫程式新增乙個目錄/檔案.
4.檔案內容是動態建立的,並不存在與磁碟上.
核心描述:
struct proc_dir_entry ;
建立檔案:
struct proc_dir_entry *create_proc_entry(const char *name , mode_t mode ,
struct proc_dir_entry *parent);
功能:建立proc檔案.
name:要建立的檔名.
mode:要建立檔案的屬性. (預設 0755)
parent:這個檔案的父目錄,如果父目錄是proc,則為null.
否則填寫函式proc_mkdir返回的值.
返回:檔案的結構指標. (核心描述的結構體)
建立目錄:
struct proc_dir_entry * proc_mkdir (const char *name , struct proc_dir_entry
*parent);
功能:建立proc目錄.
name:目錄名稱.
parent:這個目錄的父目錄.
刪除目錄:
void remove_proc_entry (const char *name , struct proc_dir_entry *parent);
功能:建立proc目錄.
name:目錄名稱.
parent:這個目錄的父目錄.
寫操作:
int read_proc(char *buffer , char **stat , off_t off , int count , int *peof , void *data);
buffer:把要返回給使用者的資訊寫在buffer裡面, max:page_size.
stat:一般不用》
off:偏移量.
count:使用者要取的位元組數.
peof:讀到檔案尾時,*peof = 1;
data:一般不用.
寫操作:
int write_proc(struct file *file, const char *buffer , unsigned long count , void *data);
file:該proc檔案對應得file結構,一般忽略.
buffer:待寫得資料所在的位置.
count:待寫資料的大小.
data:一般不用.
實現流程:
1.呼叫create_proc_entry建立乙個struct proc_dir_entry.
2.對建立的struct proc_dir_entry 進行賦值:read_proc, mode, owner, size,
write_proc and so on.
最後補充一點:
核心異常分析步驟:
1.檢視錯誤原因提示.
2.檢視呼叫棧.
(對照反彙編**)
3.暫存器.
搞定~~~可以睡覺了~~
Linux proc檔案系統
proc是linux系統中的乙個虛擬檔案系統,它實際上不含有任何真正的檔案,proc中的檔案如同linux核心中的內部資料結構的介面,通過這些介面,我們可以在系統執行時獲取系統資訊或者改變核心引數。proc檔案系統包含有每個程序的目錄,每個程序由其pid號表示的資料夾表示,例如 程序230相關資訊存...
Linux proc 虛擬檔案系統使用
1 proc sysrq trigger的使用 立即重新啟動計算機 echo b proc sysrq trigger 立即關閉計算機 echo o proc sysrq trigger 匯出記憶體分配的資訊 可以用 var log message 檢視 echo m proc sysrq trig...
檔案系統 why檔案系統
為什麼需要檔案系統,可否由作業系統直接寫裸裝置?裸裝置是一種沒有經過格式化的磁碟或分割槽,即讓作業系統直接管理操作磁碟設定,進行資料讀寫等。通過檔案系統的方式組織磁碟儲存和資料管理有很多好處,比如 1.資料讀取 管理等操作變得簡單便捷 檔案系統給使用者提供了乙個簡單的操作介面,只需簡單的操作就能實現...