linux下 /proc 和 /sys 詳解

概要:

/proc   正在運行的內核信息映射  

           主要輸出:   進程信息    

                               內存資源信息

                               磁盤分區信息等等

/sys    硬件設備的驅動程序信息

一、 /proc 文件系統

/proc下文件基本都是隻讀的,除了/proc/sys目錄,它是可寫的(查看和修改內核的運行參數)

/proc下數字命令的目錄就是對於PID的進程目錄

/proc/cmdline             啓動時傳遞給kernel的參數信息(就是bootargs信息)
/proc/cpuinfo             cpu的信息
/proc/crypto             內核使用的所有已安裝的加密密碼及細節
/proc/devices             已經加載的設備並分類
/proc/dma                 已註冊使用的ISA DMA頻道列表
/proc/execdomains         Linux    內核當前支持的execution domains
/proc/fb                 幀緩衝設備列表,包括數量和控制它的驅動
/proc/filesystems         內核當前支持的文件系統類型
/proc/interrupts         x86架構中的每個IRQ中斷數
/proc/iomem             每個物理設備當前在系統內存中的映射
/proc/ioports             一個設備的輸入輸出所使用的註冊端口範圍
/proc/kcore                 代表系統的物理內存,存儲爲核心文件格式,裏邊顯示的是字節數,等於RAM大小加上4kb
/proc/kmsg                 記錄內核生成的信息,可以通過/sbin/klogd或/bin/dmesg來處理
/proc/loadavg             根據過去一段時間內CPU和IO的狀態得出的負載狀態,與uptime命令有關
/proc/locks             內核鎖住的文件列表
/proc/mdstat             多硬盤,RAID配置信息(md=multiple disks)
/proc/meminfo             RAM使用的相關信息
/proc/misc                 其他的主要設備(設備號爲10)上註冊的驅動
/proc/modules             所有加載到內核的模塊列表
/proc/mounts             系統中使用的所有掛載
/proc/partitions         分區中的塊分配信息
/proc/pci                 系統中的PCI設備列表
/proc/slabinfo             系統中所有活動的 slab 緩存信息
/proc/stat                 所有的CPU活動信息
/proc/uptime             系統已經運行了多久
/proc/swaps             交換空間的使用情況
/proc/version             Linux內核版本和gcc版本
/proc/bus                 系統總線(Bus)信息,例如pci/usb等
/proc/driver             驅動信息
/proc/fs                 文件系統信息
/proc/ide                 ide設備信息
/proc/irq                 中斷請求設備信息
/proc/net                 網卡設備信息
/proc/scsi                 scsi設備信息
/proc/tty                 tty設備信息
/proc/net/dev             顯示網絡適配器及統計信息
/proc/vmstat             虛擬內存統計信息
/proc/vmcore             內核panic時的內存映像
/proc/diskstats         取得磁盤信息
/proc/schedstat         kernel調度器的統計信息
/proc/zoneinfo             顯示內存空間的統計信息,對分析虛擬內存行爲很有用
以下是/proc目錄中進程N的信息
/proc/N/cmdline     進程啓動命令
/proc/N/cwd         鏈接到進程當前工作目錄
/proc/N/environ     進程環境變量列表
/proc/N/exe         鏈接到進程的執行命令文件
/proc/N/fd             包含進程相關的所有的文件描述符    (ls /proc/<PID>/fd | wc -l 查看某個進程打開多少FD)
/proc/N/maps         與進程相關的內存映射信息
/proc/N/mem         指代進程持有的內存,不可讀
/proc/N/root         鏈接到進程的根目錄
/proc/N/stat         進程的狀態
/proc/N/statm         進程使用的內存的狀態
/proc/N/status        進程狀態信息,比stat/statm更具可讀性
/proc/self             鏈接到當前正在運行的進程

二、 /sys 文件系統
    block     bus       class     dev       devices   firmware  fs        kernel    module    power
① /sys/devices     (/sys文件系統最重要的目錄結構)
該目錄下是全局設備結構體系,包含所有被發現的註冊在各種總線上的各種物理設備。一般來說,所有的物理設備都按其在總線上的拓撲結構來顯示,但有兩個例外,即platform devices和system devices。platform devices一般是掛在芯片內部的高速或者低速總線上的各種控制器和外設,它們能被CPU直接尋址;system devices不是外設,而是芯片內部的核心結構,比如CPU,timer等,它們一般沒有相關的驅動,但是會有一些體系結構相關的代碼來配置它們。

② /sys/dev
該目錄下有字符設備(block)和塊設備(char)兩個子目錄,裏面全是以主次設備號(major:minor)命名的鏈接文件,鏈接到/sys/devices。

③ /sys/class     (按功能分類設備)
該目錄下包含所有註冊在kernel裏面的設備類型,每個設備類型表達具有一種功能的設備。每個設備類型子目錄下是具體設備的符號鏈接,這些鏈接指向/sys/devices/...下的具體設備。設備類型和設備並沒有一一對應的關係,一個物理設備可能具備多種設備類型;一個設備類型只表達具有一種功能的設備,比如:系統所有輸入設備都會出現在/sys/class/input之下,而不論它們是以何種總線連接到系統的。(/sys/class也是構成linux統一設備模型的一部分)

④ /sys/block     (從linux2.6.26版本開始已經移到了/sys/class/block) 

代表着系統中當前被發現的所有塊設備。按照功能來說防止在/sys/class下會更合適,但由於歷史遺留因素而一直存在於/sys/block,但從linux2.6.22內核開始這部分就已經標記爲過去時,只有打開了CONFIG_SYSFS_DEPRECATED配置編譯纔會有這個目錄存在,並且其中的內容在從linux2.6.26版本開始已經正式移到了/sys/class/block,舊的接口/sys/block爲了向後兼容而保留存在,但其中的內容已經變爲了指向它們在/sys/devices/中真實設備的符號鏈接文件。

⑤ /sys/bus    (按總線類型分類設備)
一般來說每個子目錄(總線類型)下包含兩個子目錄,一個是devices,另一個是drivers;其中devices下是這個總線類型下的所有設備,這些設備都是符號鏈接,它們分別指向真正的設備(/sys/devices/...下);而drivers下是所有註冊在這個總線上的驅動,每個driver子目錄下 是一些可以觀察和修改的driver參數。 (它也是構成linux統一設備模型的一部分)

⑥ /sys/module
該目錄包含所有被載入Kernel的模塊,無論這些模塊是以內聯(inlined)方式編譯到內核映像文件中還是編譯爲外模塊(.ko文件)

⑦ /sys/fs
該目錄用來描述系統中所有的文件系統,包括文件系統本身和按照文件系統分類存放的已掛載點。

⑧ /sys/kernel
該目錄下存放的是內核中所有可調整的參數

⑨ /sys/firmware
該目錄下包含對固件對象(firmware object)和屬性進行操作和觀察的接口,即這裏是系統加載固件機制的對用戶空間的接口.(關於固件有專用於固件加載的一套API)

⑩/sys/power
該目錄下有幾個屬性文件可以用於控制整個機器的電源狀態,如向其中寫入控制命令讓機器關機/重啓等等。
————————————————
版權聲明:本文爲CSDN博主「桐哥」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/z1026544682/article/details/98092139

發佈了78 篇原創文章 · 獲贊 86 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章