linux核心提供了procfs、sysfs和devfs等檔案系統,偽檔案系統存在於記憶體中,通常不占用硬碟空間,它以文 件的形式,向使用者提供了訪問系統核心資料的介面。使用者和應用程式 可以通過訪問這些資料介面,得到系統的資訊,而且核心允許使用者修改核心的某些引數。
procfs是「process filesystem」的縮寫,所以它 也被稱為程序檔案系統,procfs通常會自動掛載在根 目錄下的/proc資料夾。procfs為使用者提供核心狀態和程序資訊的介面,功能相 當於windows的任務管理器。
數字編號
數字編號表示的是程序的 pid 號,系統中當前執行的每乙個程序都有對應的乙個目錄,用於記錄程序所有相關資訊。對於作業系統來說,乙個應用程式就是乙個程序
self
該檔案是乙個軟鏈結,指向了當前程序的目錄,通過訪問/proc/self/目錄來獲取當前程序的資訊,就不用每次都獲取pid
thread-self
該檔案也是乙個軟鏈結,指向了當前執行緒,訪問該檔案,等價於訪問「當前程序pid/task/當前執行緒tid」的內容。。乙個程序,可以包含多個執行緒,但至少需要乙個程序,這些執行緒共同支撐程序的執行。
version
記錄了當前執行的核心版本,通常可以使用命令「uname –r」
cpuinfo
記錄系統中cpu的提供商和相關配置資訊
modules
記錄了目前系統載入的模組資訊
meminfo
記錄系統中記憶體的使用情況,free命令會訪問該檔案,來獲取系統記憶體的空閒和已使用的數量
filesystems
記錄核心支援的檔案系統型別,通常mount乙個裝置時,如果沒有指定檔案系統並且它無法確定檔案系統型別時,mount會嘗試包含在該檔案中的檔案系統,除了那些標有「nodev」的檔案系統。
檔名 檔案內容
cmdline 唯讀檔案,記錄了該程序的命令列資訊,如命令以及命令引數
comm 記錄了程序的名字
environ 程序使用的環境變數
exe 軟連線檔案,記錄命令存放的絕對路徑
fd 記錄程序開啟檔案的情況,以檔案描述符作為目錄名
fdinfo 記錄程序開啟檔案的相關資訊,包含訪問許可權以及掛載點,由其檔案描述符命名。
io 記錄程序讀取和寫入情況
map_files 記錄了記憶體中檔案的對映情況,以對應記憶體區域起始和結束位址命名
maps 記錄當前對映的記憶體區域,其訪問許可權以及檔案路徑。
stack 記錄當前程序的核心呼叫棧資訊
status 記錄程序的狀態資訊
syscall 顯示當前程序正在執行的系統呼叫。第一列記錄了系統呼叫號
task 記錄了該程序的執行緒資訊
wchan 記錄當前程序處於睡眠狀態,核心呼叫的相關函式
Linux偽檔案系統
偽檔案系統,這個概念資料較少。unix linux系統裡面有檔案描述符這個概念 萬物皆檔案 比如常規的檔案,標準輸入輸出錯誤 0,1,2描述符 還有套接字,訊息佇列等等。它們雖然存在檔案系統中某個目錄,但是不屬於任何的檔案系統,不占用硬碟的空間,只是在記憶體中作用。通過核心去管理呼叫,比如fifo有...
Linux的偽檔案系統
ramfs是直接建立在記憶體快取上的檔案系統,在核心啟動塊裝置還沒掛接上時會用到它來存放某些檔案,ramfs會因為資料的寫入自動增長空間,所以可能導致最後系統所有的記憶體耗完 proc是核心用的檔案系統,用於顯示核心資訊及改變核心引數 sysfs檔案系統用來管理和顯示各種裝置的執行引數及裝置的層次結...
偽檔案系統bdev
517static struct file system type bd type 522523static struct vfsmount bd mnt read mostly 524struct super block blockdev superblock 這三個是檔案系統的代表成員。檔案系統...