1. 程式人生 > >linux /proc檔案系統解析

linux /proc檔案系統解析


sys 
該目錄在 1.3.57 的核心裡開始出現, 包含一些對應於核心變數的檔案和子目錄. 你能讀這些變數, 有的也能通過proc修改, 或用系統呼叫 sysctl(2) 修改. 目前該目錄下有如下三個子目錄: kernel;, ;net;, ;vm 每個各自包括一些檔案和子目錄. 
kernel 
該目錄包括如下檔案: domainname;, ;file-max;, ;file-nr;, ;hostname;, ; inode-max;, ;inode-nr;, ;osrelease;, ;ostype;, ; panic;, ;real-root-dev;, ;securelevel
;, ;version, 由檔名就能清晰地得知各檔案功能. 
只讀檔案 file-nr 給出當前開啟的檔案數. 
檔案 file-max 給出系統所容許的最大可開啟檔案數. 如果 1024 不夠大的話, 能 
echo 4096 > /proc/sys/kernel/file-max
類似地, 檔案 inode-nr 及檔案 inode-max 指出了當前 inode 數和最大 inode 數. 
檔案 ostype;, ;osrelease;, ;version 實際上是 /proc/version 的子字串. 
檔案 panic 能對核心變數 panic_timeout 進行讀/寫訪問.如果該值為零, 核心在 panic 時進入(死)迴圈; 如果非零, 該值指出核心將自動重起的時間, 以秒為單位. 
檔案 securelevel
 目前似乎沒什麼意義 - root 無所不能. 
uptime 
該檔案包含兩個數: 系統正常執行時間和總的空閒時間, 都以秒為單位. 
version 
指明瞭當前正在執行的核心版本, 例如: Linux version 1.0.9 (
[[email protected]phaze][email protected][/email]

) #1 Sat May 14 01:51:54 EDT 1994

Linux系統上的/proc目錄是一種檔案系統,即proc檔案系統。與其它常見的檔案系統不同的是,/proc是一種偽檔案系統(也即虛擬檔案系 統),儲存的是當前核心執行狀態的一系列特殊檔案,使用者可以通過這些檔案檢視有關係統硬體及當前正在執行程序的資訊,甚至可以通過更改其中某些檔案來改變 核心的執行狀態。



基於/proc檔案系統如上所述的特殊性,其內的檔案也常被稱作虛擬檔案,並具有一些獨特的特點。例如,其中有些檔案雖 然使用檢視命令檢視時會返回大量資訊,但檔案本身的大小卻會顯示為0位元組。此外,這些特殊檔案中大多數檔案的時間及日期屬性通常為當前系統時間和日期,這 跟它們隨時會被重新整理(儲存於RAM中)有關。

為了檢視及使用上的方便,這些檔案通常會按照相關性進行分類儲存於不同的目錄甚至子目錄中, 如/proc/scsi目錄中儲存的就是當前系統上所有SCSI裝置的相關資訊,/proc/N中儲存的則是系統當前正在執行的程序的相關資訊,其中N為 正在執行的程序(可以想象得到,在某程序結束後其相關目錄則會消失)。

大多數虛擬檔案可以使用檔案檢視命令如cat、more或者less進行檢視,有些檔案資訊表述的內容可以一目瞭然,但也有檔案的資訊卻不怎麼具有可讀性。不過,這些可讀性較差的檔案在使用一些命令如apm、free、lspci或top檢視時卻可以有著不錯的表現。


一、        程序目錄中的常見檔案介紹

/proc目錄中包含許多以數字命名的子目錄,這些數字表示系統當前正在執行程序的程序號,裡面包含對應程序相關的多個資訊檔案。

[[email protected] ~]# ll /proc
total 0
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 1
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 10
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 11
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 1156
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 139
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 140
dr-xr-xr-x  5 root      root              0 Feb  8 17:08 141
dr-xr-xr-x  5 root      root              0 Feb  8 17:09 1417
dr-xr-xr-x  5 root      root              0 Feb  8 17:09 1418


上面列出的是/proc目錄中一些程序相關的目錄,每個目錄中是當程本身相關資訊的檔案。下面是作者系統(RHEL5.3)上執行的一個PID為2674的程序saslauthd的相關檔案,其中有些檔案是每個程序都會具有的,後文會對這些常見檔案做出說明。

[[email protected] ~]# ll /proc/2674
total 0
dr-xr-xr-x 2 root root 0 Feb  8 17:15 attr
-r-------- 1 root root 0 Feb  8 17:14 auxv
-r--r--r-- 1 root root 0 Feb  8 17:09 cmdline
-rw-r--r-- 1 root root 0 Feb  8 17:14 coredump_filter
-r--r--r-- 1 root root 0 Feb  8 17:14 cpuset
lrwxrwxrwx 1 root root 0 Feb  8 17:14 cwd -> /var/run/saslauthd
-r-------- 1 root root 0 Feb  8 17:14 environ
lrwxrwxrwx 1 root root 0 Feb  8 17:09 exe -> /usr/sbin/saslauthd
dr-x------ 2 root root 0 Feb  8 17:15 fd
-r-------- 1 root root 0 Feb  8 17:14 limits
-rw-r--r-- 1 root root 0 Feb  8 17:14 loginuid
-r--r--r-- 1 root root 0 Feb  8 17:14 maps
-rw------- 1 root root 0 Feb  8 17:14 mem
-r--r--r-- 1 root root 0 Feb  8 17:14 mounts
-r-------- 1 root root 0 Feb  8 17:14 mountstats
-rw-r--r-- 1 root root 0 Feb  8 17:14 oom_adj
-r--r--r-- 1 root root 0 Feb  8 17:14 oom_score
lrwxrwxrwx 1 root root 0 Feb  8 17:14 root -> /
-r--r--r-- 1 root root 0 Feb  8 17:14 schedstat
-r-------- 1 root root 0 Feb  8 17:14 smaps
-r--r--r-- 1 root root 0 Feb  8 17:09 stat
-r--r--r-- 1 root root 0 Feb  8 17:14 statm
-r--r--r-- 1 root root 0 Feb  8 17:10 status
dr-xr-xr-x 3 root root 0 Feb  8 17:15 task
-r--r--r-- 1 root root 0 Feb  8 17:14 wchan


1.1、cmdline — 啟動當前程序的完整命令,但殭屍程序目錄中的此檔案不包含任何資訊;
[[email protected] ~]# more /proc/2674/cmdline 
/usr/sbin/saslauthd

1.2、cwd — 指向當前程序執行目錄的一個符號連結;

1.3、environ — 當前程序的環境變數列表,彼此間用空字元(NULL)隔開;變數用大寫字母表示,其值用小寫字母表示;
[[email protected] ~]# more /proc/2674/environ 
TERM=linuxauthd

1.4、exe — 指向啟動當前程序的可執行檔案(完整路徑)的符號連結,通過/proc/N/exe可以啟動當前程序的一個拷貝;

1.5、fd — 這是個目錄,包含當前程序開啟的每一個檔案的檔案描述符(file descriptor),這些檔案描述符是指向實際檔案的一個符號連結;
[[email protected] ~]# ll /proc/2674/fd
total 0
lrwx------ 1 root root 64 Feb  8 17:17 0 -> /dev/null
lrwx------ 1 root root 64 Feb  8 17:17 1 -> /dev/null
lrwx------ 1 root root 64 Feb  8 17:17 2 -> /dev/null
lrwx------ 1 root root 64 Feb  8 17:17 3 -> socket:[7990]
lrwx------ 1 root root 64 Feb  8 17:17 4 -> /var/run/saslauthd/saslauthd.pid
lrwx------ 1 root root 64 Feb  8 17:17 5 -> socket:[7991]
lrwx------ 1 root root 64 Feb  8 17:17 6 -> /var/run/saslauthd/mux.accept

1.6、limits — 當前程序所使用的每一個受限資源的軟限制、硬限制和管理單元;此檔案僅可由實際啟動當前程序的UID使用者讀取;(2.6.24以後的核心版本支援此功能);

1.7、maps — 當前程序關聯到的每個可執行檔案和庫檔案在記憶體中的對映區域及其訪問許可權所組成的列表;
[[email protected] ~]# cat /proc/2674/maps 
00110000-00239000 r-xp 00000000 08:02 130647     /lib/libcrypto.so.0.9.8e
00239000-0024c000 rwxp 00129000 08:02 130647     /lib/libcrypto.so.0.9.8e
0024c000-00250000 rwxp 0024c000 00:00 0 
00250000-00252000 r-xp 00000000 08:02 130462     /lib/libdl-2.5.so
00252000-00253000 r-xp 00001000 08:02 130462     /lib/libdl-2.5.so

1.8、mem — 當前程序所佔用的記憶體空間,由open、read和lseek等系統呼叫使用,不能被使用者讀取;

1.9、root — 指向當前程序執行根目錄的符號連結;在Unix和Linux系統上,通常採用chroot命令使每個程序運行於獨立的根目錄;

1.10、stat — 當前程序的狀態資訊,包含一系統格式化後的資料列,可讀性差,通常由ps命令使用;

1.11、statm — 當前程序佔用記憶體的狀態資訊,通常以“頁面”(page)表示;

1.12、status — 與stat所提供資訊類似,但可讀性較好,如下所示,每行表示一個屬性資訊;其詳細介紹請參見 proc的man手冊頁;
[[email protected] ~]# more /proc/2674/status 
Name:   saslauthd
State:  S (sleeping)
SleepAVG:       0%
Tgid:   2674
Pid:    2674
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 32
Groups:
VmPeak:     5576 kB
VmSize:     5572 kB
VmLck:         0 kB
VmHWM:       696 kB
VmRSS:       696 kB
…………


1.13、task — 目錄檔案,包含由當前程序所執行的每一個執行緒的相關資訊,每個執行緒的相關資訊檔案均儲存在一個由執行緒號(tid)命名的目錄中,這類似於其內容類似於每個程序目錄中的內容;(核心2.6版本以後支援此功能)

二、/proc目錄下常見的檔案介紹

2.1、/proc/apm
高階電源管理(APM)版本資訊及電池相關狀態資訊,通常由apm命令使用;

2.2、/proc/buddyinfo
用於診斷記憶體碎片問題的相關資訊檔案;

2.3、/proc/cmdline
在啟動時傳遞至核心的相關引數資訊,這些資訊通常由lilo或grub等啟動管理工具進行傳遞;
[[email protected] ~]# more /proc/cmdline 
ro root=/dev/VolGroup00/LogVol00 rhgb quiet


2.4、/proc/cpuinfo
處理器的相關資訊的檔案;

2.5、/proc/crypto
系統上已安裝的核心使用的密碼演算法及每個演算法的詳細資訊列表;
[[email protected] ~]# more /proc/crypto 
name         : crc32c
driver       : crc32c-generic
module       : kernel
priority     : 0
type         : digest
blocksize    : 32
digestsize   : 4
…………


2.6、/proc/devices
系統已經載入的所有塊裝置和字元裝置的資訊,包含主裝置號和裝置組(與主裝置號對應的裝置型別)名;
[[email protected] ~]# more /proc/devices 
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
…………

Block devices:
1 ramdisk
2 fd
8 sd
…………


2.7、/proc/diskstats
每塊磁碟裝置的磁碟I/O統計資訊列表;(核心2.5.69以後的版本支援此功能)

2.8、/proc/dma
每個正在使用且註冊的ISA DMA通道的資訊列表;
[[email protected] ~]# more /proc/dma
2: floppy
4: cascade


2.9、/proc/execdomains
核心當前支援的執行域(每種作業系統獨特“個性”)資訊列表;
[[email protected] ~]# more /proc/execdomains 
0-0     Linux                   [kernel]


2.10、/proc/fb
幀緩衝裝置列表檔案,包含幀緩衝裝置的裝置號和相關驅動資訊;

2.11、/proc/filesystems
當前被核心支援的檔案系統型別列表檔案,被標示為nodev的檔案系統表示不需要塊裝置的支援;通常mount一個裝置時,如果沒有指定檔案系統型別將通過此檔案來決定其所需檔案系統的型別;
[[email protected] ~]# more /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   proc
iso9660
ext3
…………
…………


2.12、/proc/interrupts
X86或X86_64體系架構系統上每個IRQ相關的中斷號列表;多路處理器平臺上每個CPU對於每個I/O裝置均有自己的中斷號;
[[email protected] ~]# more /proc/interrupts 
CPU0       
0:    1305421    IO-APIC-edge  timer
1:         61    IO-APIC-edge  i8042
185:       1068   IO-APIC-level  eth0
…………


2.13、/proc/iomem
每個物理裝置上的記憶體(RAM或者ROM)在系統記憶體中的對映資訊;
[[email protected] ~]# more /proc/iomem 
00000000-0009f7ff : System RAM
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
…………


2.14、/proc/ioports
當前正在使用且已經註冊過的與物理裝置進行通訊的輸入-輸出埠範圍資訊列表;如下面所示,第一列表示註冊的I/O埠範圍,其後表示相關的裝置;
[[email protected] ~]# less /proc/ioports 
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
…………


2.15、/proc/kallsyms
模組管理工具用來動態連結或繫結可裝載模組的符號定義,由核心輸出;(核心2.5.71以後的版本支援此功能);通常這個檔案中的資訊量相當大;
[[email protected] ~]# more /proc/kallsyms 
c04011f0 T _stext
c04011f0 t run_init_process
c04011f0 T stext
…………


2.16、/proc/kcore
系統使用的實體記憶體,以ELF核心檔案(core file)格式儲存,其檔案大小為已使用的實體記憶體(RAM)加上4KB;這個檔案用來檢查核心資料結構的當前狀態,因此,通常由GBD通常除錯工具使用,但不能使用檔案檢視命令開啟此檔案;

2.17、/proc/kmsg
此檔案用來儲存由核心輸出的資訊,通常由/sbin/klogd或/bin/dmsg等程式使用,不要試圖使用檢視命令開啟此檔案;

2.18、/proc/loadavg
保 存關於CPU和磁碟I/O的負載平均值,其前三列分別表示每1秒鐘、每5秒鐘及每15秒的負載平均值,類似於uptime命令輸出的相關資訊;第四列是由 斜線隔開的兩個數值,前者表示當前正由核心排程的實體(程序和執行緒)的數目,後者表示系統當前存活的核心排程實體的數目;第五列表示此檔案被檢視前最近一 個由核心建立的程序的PID;
[[email protected] ~]# more /proc/loadavg 
0.45 0.12 0.04 4/125 5549

[[email protected] ~]# uptime
06:00:54 up  1:06,  3 users,  load average: 0.45, 0.12, 0.04


2.19、/proc/locks
保 存當前由核心鎖定的檔案的相關資訊,包含核心內部的除錯資料;每個鎖定佔據一行,且具有一個惟一的編號;如下輸出資訊中每行的第二列表示當前鎖定使用的鎖 定類別,POSIX表示目前較新型別的檔案鎖,由lockf系統呼叫產生,FLOCK是傳統的UNIX檔案鎖,由flock系統呼叫產生;第三列也通常由 兩種型別,ADVISORY表示不允許其他使用者鎖定此檔案,但允許讀取,MANDATORY表示此檔案鎖定期間不允許其他使用者任何形式的訪問;
[[email protected] ~]# more /proc/locks 
1: POSIX  ADVISORY  WRITE 4904 fd:00:4325393 0 EOF
2: POSIX  ADVISORY  WRITE 4550 fd:00:2066539 0 EOF
3: FLOCK  ADVISORY  WRITE 4497 fd:00:2066533 0 EOF


2.20、/proc/mdstat
儲存RAID相關的多塊磁碟的當前狀態資訊,在沒有使用RAID機器上,其顯示為如下狀態:
[[email protected] ~]# less /proc/mdstat 
Personalities : 
unused devices: 


2.21、/proc/meminfo
系統中關於當前記憶體的利用狀況等的資訊,常由free命令使用;可以使用檔案檢視命令直接讀取此檔案,其內容顯示為兩列,前者為統計屬性,後者為對應的值;
[[email protected] ~]# less /proc/meminfo 
MemTotal:       515492 kB
MemFree:          8452 kB
Buffers:         19724 kB
Cached:         376400 kB
SwapCached:          4 kB
…………


2.22、/proc/mounts
在 核心2.4.29版本以前,此檔案的內容為系統當前掛載的所有檔案系統,在2.4.19以後的核心中引進了每個程序使用獨立掛載名稱空間的方式,此檔案則 隨之變成了指向/proc/self/mounts(每個程序自身掛載名稱空間中的所有掛載點列表)檔案的符號連結;/proc/self是一個獨特的目 錄,後文中會對此目錄進行介紹;
[[email protected] ~]# ll /proc |grep mounts
lrwxrwxrwx  1 root      root             11 Feb  8 06:43 mounts -> self/mounts


如下所示,其中第一列表示掛載的裝置,第二列表示在當前目錄樹中的掛載點,第三點表示當前檔案系統的型別,第四列表示掛載屬性(ro或者rw),第五列和第六列用來匹配/etc/mtab檔案中的轉儲(dump)屬性;

[[email protected] ~]# more /proc/mounts 
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
…………


2.23、/proc/modules
當 前裝入核心的所有模組名稱列表,可以由lsmod命令使用,也可以直接檢視;如下所示,其中第一列表示模組名,第二列表示此模組佔用記憶體空間大小,第三列 表示此模組有多少例項被裝入,第四列表示此模組依賴於其它哪些模組,第五列表示此模組的裝載狀態(Live:已經裝入;Loading:正在裝 入;Unloading:正在解除安裝),第六列表示此模組在核心記憶體(kernel memory)中的偏移量;
[[email protected] ~]# more /proc/modules 
autofs4 24517 2 - Live 0xe09f7000
hidp 23105 2 - Live 0xe0a06000
rfcomm 42457 0 - Live 0xe0ab3000
l2cap 29505 10 hidp,rfcomm, Live 0xe0aaa000
…………


2.24、/proc/partitions
塊裝置每個分割槽的主裝置號(major)和次裝置號(minor)等資訊,同時包括每個分割槽所包含的塊(block)數目(如下面輸出中第三列所示);
[[email protected] ~]# more /proc/partitions 
major minor  #blocks  name

8     0   20971520 sda
8     1     104391 sda1
8     2    6907950 sda2
8     3    5630782 sda3
8     4          1 sda4
8     5    3582463 sda5


2.25、/proc/pci
核心初始化時發現的所有PCI裝置及其配置資訊列表,其配置資訊多為某PCI裝置相關IRQ資訊,可讀性不高,可以用“/sbin/lspci –vb”命令獲得較易理解的相關資訊;在2.6核心以後,此檔案已為/proc/bus/pci目錄及其下的檔案代替;

2.26、/proc/slabinfo
在核心中頻繁使用的物件(如inode、dentry等)都有自己的cache,即slab pool,而/proc/slabinfo檔案列出了這些物件相關slap的資訊;詳情可以參見核心文件中slapinfo的手冊頁;
[[email protected] ~]# more /proc/slabinfo 
slabinfo - version: 2.1
# name             : tunables : slabdata <ac
tive_slabs> 
rpc_buffers            8      8   2048    2    1 : tunables   24   12    8 : slabdata      4      4      0
rpc_tasks              8     20    192   20    1 : tunables  120   60    8 : slabdata      1      1      0
rpc_inode_cache        6      9    448    9    1 : tunables   54   27    8 : slabdata      1      1      0
…………
…………
…………


2.27、/proc/stat
實時追蹤自系統上次啟動以來的多種統計資訊;如下所示,其中,
“cpu”行後的八個值分別表示以1/100(jiffies)秒為單位的統計值(包括系統運行於使用者模式、低優先順序使用者模式,運系統模式、空閒模式、I/O等待模式的時間等);
“intr”行給出中斷的資訊,第一個為自系統啟動以來,發生的所有的中斷的次數;然後每個數對應一個特定的中斷自系統啟動以來所發生的次數;
“ctxt”給出了自系統啟動以來CPU發生的上下文交換的次數。
“btime”給出了從系統啟動到現在為止的時間,單位為秒;
“processes (total_forks) 自系統啟動以來所建立的任務的個數目;
“procs_running”:當前執行佇列的任務的數目;
“procs_blocked”:當前被阻塞的任務的數目;
[[email protected] ~]# more /proc/stat
cpu  2751 26 5771 266413 2555 99 411 0
cpu0 2751 26 5771 266413 2555 99 411 0
intr 2810179 2780489 67 0 3 3 0 5 0 1 0 0 0 1707 0 0 9620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12781 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 427300
btime 1234084100
processes 3491
procs_running 1
procs_blocked 0


2.28、/proc/swaps
當前系統上的交換分割槽及其空間利用資訊,如果有多個交換分割槽的話,則會每個交換分割槽的資訊分別儲存於/proc/swap目錄中的單獨檔案中,而其優先順序數字越低,被使用到的可能性越大;下面是作者系統中只有一個交換分割槽時的輸出資訊;
[[email protected] ~]# more /proc/swaps 
Filename                                Type            Size    Used    Priority
/dev/sda8                               partition       642560  0       -1


2.29、/proc/uptime
系統上次啟動以來的執行時間,如下所示,其第一個數字表示系統執行時間,第二個數字表示系統空閒時間,單位是秒;
[[email protected] ~]# more /proc/uptime 
3809.86 3714.13


2.30、/proc/version
當前系統執行的核心版本號,在作者的RHEL5.3上還會顯示系統安裝的gcc版本,如下所示;
[[email protected] ~]# more /proc/version 
Linux version 2.6.18-128.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Dec 17 11:42:39 EST 2008


2.31、/proc/vmstat
當前系統虛擬記憶體的多種統計資料,資訊量可能會比較大,這因系統而有所不同,可讀性較好;下面為作者機器上輸出資訊的一個片段;(2.6以後的核心支援此檔案)
[[email protected] ~]# more /proc/vmstat 
nr_anon_pages 22270
nr_mapped 8542
nr_file_pages 47706
nr_slab 4720
nr_page_table_pages 897
nr_dirty 21
nr_writeback 0
…………


2.32、/proc/zoneinfo
記憶體區域(zone)的詳細資訊列表,資訊量較大,下面列出的是一個輸出片段:
[[email protected] ~]# more /proc/zoneinfo 
Node 0, zone      DMA
pages free     1208
min      28
low      35
high     42
active   439
inactive 1139
scanned  0 (a: 7 i: 30)
spanned  4096
present  4096
nr_anon_pages 192
nr_mapped    141
nr_file_pages 1385
nr_slab      253
nr_page_table_pages 2
nr_dirty     523
nr_writeback 0
nr_unstable  0
nr_bounce    0
protection: (0, 0, 296, 296)
pagesets
all_unreclaimable: 0
prev_priority:     12
start_pfn:         0
…………


三、/proc/sys目錄詳解

與 /proc下其它檔案的“只讀”屬性不同的是,管理員可對/proc/sys子目錄中的許多檔案內容進行修改以更改核心的執行特性,事先可以使用“ls -l”命令檢視某檔案是否“可寫入”。寫入操作通常使用類似於“echo  DATA > /path/to/your/filename”的格式進行。需要注意的是,即使檔案可寫,其一般也不可以使用編輯器進行編輯。

3.1、/proc/sys/debug 子目錄
此目錄通常是一空目錄;

3.2、/proc/sys/dev 子目錄
為 系統上特殊裝置提供引數資訊檔案的目錄,其不同裝置的資訊檔案分別儲存於不同的子目錄中,如大多數系統上都會具有的/proc/sys/dev /cdrom和/proc/sys/dev/raid(如果核心編譯時開啟了支援raid的功能) 目錄,其記憶體儲的通常是系統上cdrom和raid的相關引數資訊檔案。

相關推薦

linux /proc檔案系統解析

sys  該目錄在 1.3.57 的核心裡開始出現, 包含一些對應於核心變數的檔案和子目錄. 你能讀這些變數, 有的也能通過proc修改, 或用系統呼叫 sysctl(2) 修改. 目前該目錄下有如下三個子目錄: kernel;, ;net;, ;vm 每個各自包括一些檔案和子目錄. kernel  該目

linux Proc檔案系統介紹及運用總結

引言 先說一個剛剛發現的問題: 前兩天開啟測試機發現速度非常慢,top一看,發現java佔用CPU 99% 檢視對應pid,發現這個是新的話單採集程式gather: #ps -ef | grep java Root 5762 1 99 14:41 pts/0 00:0

Linux基礎(二)——/proc檔案系統

1、/proc檔案系統簡介     /proc檔案系統由一組目錄和檔案組成,裝配(mount)於/proc目錄下。/proc檔案系統是一種虛擬檔案系統,以檔案系統目錄和檔案形式提供一個只想核心資料結構的介面。這為檢視和改變各種系統屬性開啟了方便之門。此外,還能通過一組以/proc

linuxproc檔案系統

linux中的/proc檔案系統是一個虛擬的檔案系統,由核心在執行時動態生成。它提供了核心執行時的配置和狀態資訊。使用者可以通過這些檔案來獲取、或修改核心的資訊。 關於proc,可以通過 man proc 獲取詳細的說明。執行 mount 命令,可以看到 proc 檔案系統

深度解析Linux檔案系統的掛載過程

在前面的文章中介紹《Linux作業系統啟動過程》,而Linux系統的根檔案系統(root file system)的掛載過程則是其中一個重要環節,下面這部分內容來自於網路,經整理分享如下,希望能給這部份知識點比較迷茫的朋友一點幫助。 一、rootfs的種類 總的來說,rootfs分為兩種:虛擬roo

使用 /proc 檔案系統來訪問 Linux 核心的內容

最初開發 /proc 檔案系統是為了提供有關係統中程序的資訊。但是由於這個檔案系統非常有用,因此核心中的很多元素也開始使用它來報告資訊,或啟用動態執行時配置。 /proc 檔案系統包含了一些目錄(用作組織資訊的方式)和虛擬檔案。虛擬檔案可以向用戶呈現核心中的一些資訊,

Linux核心中的Proc檔案系統(一)

(1)/proc檔案系統的特點和/proc檔案的說明/proc檔案系統是一種特殊的、由軟體建立的檔案系統,核心使用它向外界匯出資訊,/proc系統只存在記憶體當中,而不佔用外存空間。/proc下面的每個

用 /proc 檔案系統來訪問 Linux 核心的內容

最初開發 /proc 檔案系統是為了提供有關係統中程序的資訊。但是由於這個檔案系統非常有用,因此核心中的很多元素也開始使用它來報告資訊,或啟用動態執行時配置。 /proc 檔案系統包含了一些目錄(用作組織資訊的方式)和虛擬檔案。虛擬檔案可以向用戶呈現核心中的一些資訊,也可以用作一種從使用者空間向核心傳送

嵌入式 使用 /proc 檔案系統來訪問 Linux 核心的內容

/* Create a directory in the proc filesystem */ struct proc_dir_entry *proc_mkdir( const char *name, struct proc_dir_e

linux kernel (proc檔案系統)引數

二、/proc/sys/kernel/優化 1)     /proc/sys/kernel/ctrl-alt-del 該檔案有一個二進位制值,該值控制系統在接收到ctrl+alt+delete按鍵組合時如何反應。這兩個值分別是: 零(0)值,表示捕獲ctrl+alt+delete,並將其送至 init 程式;

linuxproc檔案系統 -- ldd3讀書筆記

     1./proc 檔案系統概述      /proc 檔案系統是由軟體建立,被核心用來向外界報告資訊的一個檔案系統。/proc 下面的每一個檔案都和一個核心函式相關聯,當檔案的被讀取時,與之對應的核心函式用於產生檔案的內容。我們已經見到了很多這樣的檔案,例如,/pr

Linuxproc檔案系統介紹與應用

proc檔案系統的作用 (1) 核心專案太龐大,除錯困難,引入新的除錯方法。 (2) proc檔案系統的思路是:在核心中構建一個虛擬檔案系統/proc,核心執行時將核心中一些關鍵的資料結構以檔案的方式呈現在/proc目錄下的一些特定檔案中, 這樣相當於將不可見的核心中的資料結構以

Linux ext4檔案系統原理-檔案系統結構及檔案解析

基本概念 1扇區(sector)=512位元組(byte) 1資料塊(block)=8扇區=4KB(mkfs時指定,預設4KB,可設定為1KB - 64KB) Ext4欄位使用little-endian順序寫入磁碟;但journal日誌使用big-endian順序寫入磁碟。

Linux核心模組程式設計-proc檔案系統

什麼是proc proc檔案系統是一個偽檔案系統,它只存在記憶體當中,而不佔用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過proc得到系統的資訊,並可以改變核心的某些引數。由於系統的資訊,如程序,是動態改變的,所以使用

Linux核心通訊之---proc檔案系統(詳解)

使用 /proc 檔案系統來訪問 Linux 核心的內容,這個虛擬檔案系統在核心空間和用戶空間之間打開了一個通訊視窗: /proc 檔案系統是一個虛擬檔案系統,通過它可以使用一種新的方法在 Linux核心空間和使用者間之間進行通訊。在 /proc 檔案系統中,我

[Linux] 核心的 /proc 檔案系統介紹及使用方法

核心現在採用的是 sysfs 檔案系統。 在 sysfs 誕生之前我們採用的是 proc 檔案系統。 sysfs 是一個與 /proc 類似的檔案系統,但是它的組織更好(從 /proc 中學習了很多教訓)。不過 /proc 已經確立了自己的地位,因此即使

Linux 記憶體檔案系統

Linux記憶體檔案系統:可滿足高IO的要求 ramdisk: 基於虛擬在記憶體中的其他檔案系統(ex2fs)。 掛載方式:mount /dev/ram /mnt/ramdisk ramfs: 實體記憶體檔案系統,只存在於實體記憶體中。其大小也不是固定的,而是隨著所需要的

Linux.ext4檔案系統 .inode和extent

最近在看相關內容,不過總是不是很系統,今日看到此部落格,感覺恍然大悟,作者寫的非常棒:轉載: https://blog.csdn.net/stringNewName/article/details/73740155 為表示對作者的尊敬,一字不動的敲擊! 最近在看ext4

linux 檢視檔案系統型別

linux 檢視檔案系統型別 Linux 檢視檔案系統的方式有多種,列舉如下: mount :~$ mount /dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr) proc on /proc type pr

linux檔案系統以及使用者組等概念

一、Linux檔案結構及基本資料夾 目錄 描述 / 根目錄 /bin 做為基礎系統所需要的最基礎的命令就是放在這裡。比如 ls、cp、mkdir等命令;功能和