openwrt下的proc目錄下檔案詳解
阿新 • • 發佈:2019-02-03
Linux系統上的/proc目錄是一種檔案系統,即proc檔案系統。與其它常見的檔案系統不同的是,/proc是一種偽檔案系統(也即虛擬檔案系統),儲存的是當前核心執行狀態的一系列特殊檔案,使用者可以通過這些檔案檢視有關係統硬體及當前正在執行程序的資訊,甚至可以通過更改其中某些檔案來改變核心的執行狀態。
基於/proc檔案系統如上所述的特殊性,其內的檔案也常被稱作虛擬檔案,並具有一些獨特的特點。例如,其中有些檔案雖然使用檢視命令檢視時會返回大量資訊,但檔案本身的大小卻會顯示為0位元組。此外,這些特殊檔案中大多數檔案的時間及日期屬性通常為當前系統時間和日期,這跟它們隨時會被重新整理(儲存於RAM中)有關。
為了檢視及使用上的方便,這些檔案通常會按照相關性進行分類儲存於不同的目錄甚至子目錄中,如/proc/scsi目錄中儲存的就是當前系統上所有SCSI裝置的相關資訊,/proc/N中儲存的則是系統當前正在執行的程序的相關資訊,其中N為正在執行的程序(可以想象得到,在某程序結束後其相關目錄則會消失)。
大多數虛擬檔案可以使用檔案檢視命令如cat、more或者less進行檢視,有些檔案資訊表述的內容可以一目瞭然,但也有檔案的資訊卻不怎麼具有可讀性。不過,這些可讀性較差的檔案在使用一些命令如apm、free、lspci或top檢視時卻可以有著不錯的表現。
===================================================
===================================================================================================================================
proc 檔案系統可以被用於收集有用的關於系統和執行中的核心的資訊。下面是一些重要 的檔案:
- /proc/cpuinfo - CPU 的資訊 (型號, 家族, 快取大小等)
- /proc/meminfo - 實體記憶體、交換空間等的資訊
- /proc/mounts - 已載入的檔案系統的列表
- /proc/devices - 可用裝置的列表
- /proc/filesystems - 被支援的檔案系統
- /proc/modules - 已載入的模組
- /proc/version - 核心版本
- /proc/cmdline - 系統啟動時輸入的核心命令列引數
原文出處:http://bbs.chinaunix.net/thread-2175986-1-1.html
說明:本文所涉及示例均在fedora core3下得到。
--------------------------------------------------------------------------------
/proc檔案系統下的多種檔案提供的系統資訊不是針對某個特定程序的,而是能夠在整個系統範圍的上下文中使用。可以使用的檔案隨系統配置的變化而變化。命令procinfo能夠顯示基於其中某些檔案的多種系統資訊。以下詳細描述/proc下的檔案。
--------------------------------------------------------------------------------
/proc/cmdline檔案
這個檔案給出了核心啟動的命令列。它和用於程序的cmdline項非常相似。
示例:
[[email protected] proc]# cat cmdline
ro root=LABEL=/ rhgb quiet
--------------------------------------------------------------------------------
/proc/cpuinfo檔案
這個檔案提供了有關係統CPU的多種資訊。這些資訊是從核心裡對CPU的測試程式碼中得到的。檔案列出了CPU的普通型號(386,486,586,686等),以及能得到的更多特定資訊(製造商,型號和版本)。檔案還包含了以bogomips表示的處理器速度,而且如果檢測到CPU的多種特性或者bug,檔案還會包含相應的標誌。這個檔案的格式為:檔案由多行構成,每行包括一個域名稱,一個冒號和一個值。
示例:
[[email protected] proc]# cat cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Athlon(tm) XP 1800+
stepping : 1
cpu MHz : 1530.165
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips : 2998.27
--------------------------------------------------------------------------------
/proc/devices檔案
這個檔案列出字元和塊裝置的主裝置號,以及分配到這些裝置號的裝置名稱。
示例:
[[email protected] /]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
29 fb
36 netlink
116 alsa
128 ptm
136 pts
180 usb
Block devices:
1 ramdisk
2 fd
3 ide0
9 md
22 ide1
253 device-mapper
254 mdp
--------------------------------------------------------------------------------
/proc/dma檔案
這個檔案列出由驅動程式保留的DMA通道和保留它們的驅動程式名稱。casade項供用於把次DMA控制器從主控制器分出的DMA行所使用;這一行不能用於其它用途。
示例:
[[email protected] ~]# cat /proc/dma
4: cascade
--------------------------------------------------------------------------------
/proc/filesystems檔案
這個檔案列出可供使用的檔案系統型別,一種型別一行。雖然它們通常是編入核心的檔案系統型別,但該檔案還可以包含可載入的核心模組加入的其它檔案系統型別。
示例:
[[email protected] proc]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev binfmt_misc
nodev usbfs
nodev usbdevfs
nodev futexfs
nodev tmpfs
nodev pipefs
nodev eventpollfs
nodev devpts
ext2
nodev ramfs
nodev hugetlbfs
iso9660
nodev mqueue
nodev selinuxfs
ext3
nodev rpc_pipefs
nodev autofs
--------------------------------------------------------------------------------
/proc/interrupts檔案
這個檔案的每一行都有一個保留的中斷。每行中的域有:中斷號,本行中斷的發生次數,可能帶有一個加號的域(SA_INTERRUPT標誌設定),以及登記這個中斷的驅動程式的名字。可以在安裝新硬體前,像檢視/proc/dma和/proc/ioports一樣用cat命令手工檢視手頭的這個檔案。這幾個檔案列出了當前投入使用的資源(但是不包括那些沒有載入驅動程式的硬體所使用的資源)。
示例:
[[email protected] SPECS]# cat /proc/interrupts
CPU0
0: 7039406 XT-PIC timer
1: 6533 XT-PIC i8042
2: 0 XT-PIC cascade
3: 0 XT-PIC uhci_hcd
5: 108 XT-PIC VIA8233, uhci_hcd
8: 1 XT-PIC rtc
9: 0 XT-PIC acpi
10: 0 XT-PIC ehci_hcd
11: 17412 XT-PIC uhci_hcd, eth0
12: 140314 XT-PIC i8042
14: 37897 XT-PIC ide0
