溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux下proc是什么

發(fā)布時間:2023-03-15 14:22:07 來源:億速云 閱讀:109 作者:iii 欄目:建站服務(wù)器

今天小編給大家分享一下linux下proc是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

在linux中,proc是虛擬文件系統(tǒng),是一個控制中心,可以通過更改其中某些文件改變內(nèi)核運(yùn)行狀態(tài);它也是內(nèi)核提空給我們的查詢中心,用戶可以通過它查看系統(tǒng)硬件及當(dāng)前運(yùn)行的進(jìn)程信息。proc系統(tǒng)只存在內(nèi)存當(dāng)中,以文件系統(tǒng)的方式為訪問系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口,可以通過更改其中的某些文件來改變內(nèi)核運(yùn)行狀態(tài)。

proc被稱為虛擬文件系統(tǒng),它是一個控制中心,可以通過更改其中某些文件改變內(nèi)核運(yùn)行狀態(tài),它也是內(nèi)核提空給我們的查詢中心,用戶可以通過它查看系統(tǒng)硬件及當(dāng)前運(yùn)行的進(jìn)程信息。

Linux中許多工具的數(shù)據(jù)來源正是proc目錄中的內(nèi)容,比如lsmod的命令是cat /proc/modules的別名。

在Linux中存在著一類特殊的偽文件系統(tǒng),用于使用與文件接口統(tǒng)一的操作來完成各種功能,例如ptyfs、devfs、sysfs和procfs。而procfs就是其中應(yīng)用最廣泛的一種偽文件系統(tǒng)。

就文件系統(tǒng)這一術(shù)語而言,/ proc目錄并不是真正的文件系統(tǒng),它是一個虛擬文件系統(tǒng),有時也被稱為進(jìn)程信息偽文件系統(tǒng)。

proc 放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中,例如系統(tǒng)內(nèi)核、進(jìn)程、外部設(shè)備的狀態(tài)及網(wǎng)絡(luò)狀態(tài)等。因?yàn)檫@個目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中,所以本身不占任何硬盤空間。

procfs是Linux內(nèi)核信息的抽象文件接口,大量內(nèi)核中的信息以及可調(diào)參數(shù)都被作為常規(guī)文件映射到一個目錄樹中,這樣我們就可以簡單直接的通過echo或cat這樣的文件操作命令對系統(tǒng)信息進(jìn)行查取和調(diào)整了。同時procfs也提供了一個接口,使得我們自己的內(nèi)核模塊或用戶態(tài)程序可以通過procfs進(jìn)行參數(shù)的傳遞。在當(dāng)今的Linux系統(tǒng)中,大量的系統(tǒng)工具也通過procfs獲取內(nèi)核參數(shù),例如ps、lspci等等,沒有procfs它們將可能不能正常工作。

proc文件系統(tǒng)是一個偽文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。它以文件系統(tǒng)的方式為訪問系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口。用戶和應(yīng)用程序可以通過proc得到系統(tǒng)的信息,并可以改變內(nèi)核的某些參數(shù)。由于系統(tǒng)的信息,如進(jìn)程,是動態(tài)改變的,所以用戶或應(yīng)用程序讀取proc文件時,proc文件系統(tǒng)是動態(tài)從系統(tǒng)內(nèi)核讀出所需信息并提交的。

linux proc文件系統(tǒng)詳解

Linux系統(tǒng)上的/proc目錄是一種文件系統(tǒng),即proc文件系統(tǒng)。與其它常見的文件系統(tǒng)不同的是,/proc是一種偽文件系統(tǒng)(也即虛擬文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。它以文件系統(tǒng)的方式為訪問系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口),存儲的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件,用戶可以通過這些文件查看有關(guān)系統(tǒng)硬件及當(dāng)前正在運(yùn)行進(jìn)程的信息,甚至可以通過更改其中某些文件來改變內(nèi)核的運(yùn)行狀態(tài)。

PID

目錄,系統(tǒng)中當(dāng)前運(yùn)行的每一個進(jìn)程都有對應(yīng)的一個目錄在/proc下,以進(jìn)程的 PID號為目錄名.

  • attr

    目錄,提供了安全相關(guān)的屬性,可讀可寫,以支持安全模塊如SELinux等,需配置CONFIG_SECURITY。

  • current

    文件,當(dāng)前的安全相關(guān)的屬性。

  • exec

    文件,執(zhí)行命令execve時設(shè)置的安全相關(guān)的屬性。

  • fscreate

    文件,執(zhí)行命令open、mkdir、symlink、mknod時設(shè)置的安全相關(guān)的屬性。

  • keycreate

    文件,執(zhí)行命令add_key時設(shè)置的安全相關(guān)的屬性。

  • prev

    文件,最后一次執(zhí)行命令execve時的安全相關(guān)的屬性,即前一個“/proc/[pid]/attr/current”。

  • sockcreate

    文件,創(chuàng)建socket時設(shè)置的安全相關(guān)的屬性。

  • autogroup

    文件,可以用來修改分配給自動分組的CPU帶寬。這是通過在“nice”范圍內(nèi)寫入一個數(shù)字來設(shè)置自動分組的nice值來完成的。取值范圍為+19(低優(yōu)先級)~ -20(高優(yōu)先級)。(寫入值超出這個范圍會導(dǎo)致write(2)失敗,錯誤為EINVAL。)

  • auxv

    文件,ELF解釋器信息,格式為一個unsigned long類型的ID加一個unsigned long類型的值,最后為兩個0(man getauxval)。

  • cgroup

    文件,進(jìn)程所屬的控制組,格式為冒號分隔的三個字段,分別是結(jié)構(gòu)ID、子系統(tǒng)、控制組,需配置CONFIG_CGROUPS。

  • clear_refs

    文件,只寫,只用于進(jìn)程的擁有者,清除用于估算內(nèi)存使用量的PG_Referenced和ACCESSED/YOUNG,有1、2、3、4四種策略,1表示清除相關(guān)的所有頁,2表示清除相關(guān)的匿名頁,3表示清除相關(guān)的映射文件的頁,4表示清除相關(guān)的soft-dirty的頁,需配置CONFIG_PROC_PAGE_MONITOR。

  • cmdline

    文件,只讀,保存啟動進(jìn)程的完整的命令行字符串,如果是僵尸進(jìn)程,這個文件為空。

  • comm

    文件,進(jìn)程的命令名,不同的線程(man clone prctl pthread_setname_np)可能有不同的線程名,位置在“task/[tid]/comm”,名字長度超過TASK_COMM_LEN時會被截?cái)唷?/p>

  • coredump_filter

    文件,coredump過濾器,如00000037(man core),不同的二進(jìn)制位表示過濾不同的信息。

  • cpuset

    文件,控制CPU和內(nèi)存的節(jié)點(diǎn)(man cpuset)。

  • cwd -> /

    目錄,符號鏈接到當(dāng)前工作目錄。

  • environ

    文件,環(huán)境變量。

  • exe

    文件,符號鏈接到啟動進(jìn)程的完整命令。q

  • fd

    目錄,包含當(dāng)前的fd,這些fd符號鏈接到真正打開的文件。

  • fdinfo

    目錄,包含當(dāng)前fd的信息,不同類型的fd信息不同。

  • gid_map

    文件,從用戶命名空間映射的組ID的信息(man user_namespaces)。

  • io

    文件,IO信息。

  • limits

    文件,資源軟、硬限制(man getrlimit)。

  • loginuid

    文件,審計(jì)守護(hù)進(jìn)程在內(nèi)核中啟用審計(jì)工具。在內(nèi)核中打開審計(jì)功能之前運(yùn)行的任何進(jìn)程都將獲得 loginuid 4294967295。
    4294967295 只是 (unsigned long) -1。-1 表示未設(shè)置 loginuid。對于不是由任何登錄進(jìn)程(例如守護(hù)進(jìn)程)產(chǎn)生的進(jìn)程,這是正常行為。loginuid 默認(rèn)為 -1;每當(dāng)您登錄時(在 tty/在 DM/通過 ssh),pam_loginuid 模塊都會將其更改為您的用戶 ID,并且該值由子進(jìn)程保留。

  • map_files

    目錄,包括一些內(nèi)存映射文件(man mmap),文件名格式為BeginAddress-EndAddress,符號鏈接到映射的文件,需要配置CONFIG_CHECKPOINT_RESTORE。

  • maps

    文件,內(nèi)存映射信息。

  • mem

    文件,用于通過open、read、lseek訪問進(jìn)程的內(nèi)存頁。

  • mountinfo

    文件,掛載信息,格式為44 41 253:1 / / rw,relatime shared:35 master:1 - ext4 /dev/vda1 rw,data=ordered,以空格作為分隔符,從左到右各字段的意思分別是唯一掛載ID、父掛載ID、文件系統(tǒng)的設(shè)備主從號碼、文件系統(tǒng)中掛載的根節(jié)點(diǎn)、相對于進(jìn)程根節(jié)點(diǎn)的掛載點(diǎn)、掛載權(quán)限等掛載配置、可選配置、短橫線表示前面可選配置的結(jié)束、文件系統(tǒng)類型、文件系統(tǒng)特有的掛載源或者為none、額外配置。

  • mounts

    文件,掛載在當(dāng)前進(jìn)程的文件系統(tǒng)列表,/dev/vda1 / ext4 rw,relatime,data=ordered 0 0 格式參照(man fstab)。

  • mountstats

    文件,掛載信息,格式形如 device /dev/vda1 mounted on / with fstype ext4 [statistics]。

  • net

    目錄,保存進(jìn)程的網(wǎng)絡(luò)相關(guān)文件和目錄。

  • ns

    目錄,保存了每個名字空間的入口,詳見(man namespaces)。

  • numa_maps

    文件,numa即Non Uniform Memory Access,詳見(man numa)。

  • oom_adj

    文件,調(diào)整OOM分?jǐn)?shù),OOM即Out Of Memory,發(fā)生OOM時OOM Killer根據(jù)OOM分?jǐn)?shù)殺掉分?jǐn)?shù)高的進(jìn)程,默認(rèn)值為0,會繼承自父進(jìn)程的設(shè)置。

  • oom_score

    文件,OOM分?jǐn)?shù)。

  • oom_score_adj

    文件,OOM分值介于-1000到1000之間。

  • pagemap

    文件,當(dāng)前進(jìn)程的虛擬內(nèi)存頁映射信息,需要配置CONFIG_PROC_PAGE_MONITOR。

  • personality

    文件,使進(jìn)程個性標(biāo)志在/proc中可見。因?yàn)橐粋€進(jìn)程的個性可能是敏感的(例如READ_IMPLIES_EXEC),所以這個文件只能被進(jìn)程所有者讀。

  • projid_map

    文件,與用戶和組ID映射類似,可以為用戶名稱空間創(chuàng)建項(xiàng)目ID映射。(項(xiàng)目id用于磁盤配額;請參見setquota(8)和quotactl(2)。)

  • patch_state

    文件,公開每個任務(wù)的補(bǔ)丁狀態(tài)值,以便用戶可以確定哪些任務(wù)正在阻止修補(bǔ)操作的完成。

  • root -> /

    目錄,鏈接到了當(dāng)前進(jìn)程的根目錄。

  • sched

    文件,進(jìn)程的調(diào)度統(tǒng)計(jì)、狀態(tài)信息。

  • schedstat

    文件,進(jìn)程的調(diào)度信息。

  • sessionid

    文件,進(jìn)程會話ID,默認(rèn)4294967295。

  • setgroups

    文件,如果用戶命名空間中包含進(jìn)程pid的進(jìn)程被允許使用setgroups(2)系統(tǒng)調(diào)用,則/proc/[pid]/setgroups文件顯示字符串"allow";如果用戶名稱空間中不允許setgroups(2),則顯示“deny”。注意,不管/proc/[pid]/setgroups文件中的值是多少(也不管進(jìn)程的能力是多少),如果/proc/[pid]/gid_map還沒有設(shè)置,調(diào)用setgroups(2)也是不允許的。

  • smaps

    文件,內(nèi)存映射信息,類似于pmap命令,需要配置CONFIG_PROC_PAGE_MONITOR。

  • stack

    文件,內(nèi)核空間的函數(shù)調(diào)用堆棧,需要配置CONFIG_STACKTRACE。

  • stat

    文件,進(jìn)程狀態(tài)信息,用于ps命令。

  • statm

    文件,進(jìn)程內(nèi)存使用信息,以空格分隔的7個數(shù)字,從左到右分別表示程序總大小、常駐內(nèi)存大小、共享內(nèi)存頁大小、text code、library、data + stack、dirty pages。

  • status

    文件,可讀性好的進(jìn)程相關(guān)信息。

  • syscall

    文件,系統(tǒng)調(diào)用相關(guān)信息,需要配置CONFIG_HAVE_ARCH_TRACEHOOK。

  • task

    目錄,每個線程一個子目錄,目錄名為線程ID。

  • timers

    文件,POSIT定時器列表,包括定時器ID、信號等信息。

  • uid_map

    文件,用戶ID映射信息。

  • wchan

    文件,進(jìn)程休眠時內(nèi)核中相應(yīng)位置的符號表示,如do_wait。

acpi/wakeup

文件,設(shè)備喚醒操作。

buddyinfo

文件,用于診斷內(nèi)存碎片問題。

bus

目錄,已安裝的總線。

  • input/devices

    文件,輸入設(shè)備信息。

  • input/handlers

    文件,句柄信息。

  • pci/00/00.0-08.0

    文件,pci插口信息。

  • pci/devices

    文件,pci設(shè)備信息。

cgroups

cgroups信息匯總,字段 subsys_name hierarchy num_cgroups enabled。

cmdline

文件,系統(tǒng)啟動時傳遞給Linux內(nèi)核的參數(shù),如lilo、grub等boot管理模塊。

consoles

文件,要查看系統(tǒng)控制臺/dev/console中當(dāng)前使用的設(shè)備行字符,你可以簡單地查看/proc/console文件.

cpuinfo

文件,CPU和系統(tǒng)架構(gòu)信息,lscpu命令使用這個文件。

crypto

文件,內(nèi)核加密API提供的加密列表。

devices

文件,設(shè)備相關(guān)信息。

diskstats

文件,磁盤狀態(tài)。

dma

文件,dma即Direct Memory Access。

driver

  • nvram

    文件,提供對 PC 和 Ataris 上實(shí)時時鐘中的非易失性存儲器的訪問。在 PC 上,這通常稱為 CMOS 內(nèi)存并存儲 BIOS 配置選項(xiàng)。

  • rtc

    文件,系統(tǒng)運(yùn)行時配置。

execdomains

文件,執(zhí)行域列表。

fb

文件,F(xiàn)rame Buffer信息,需要配置CONFIG_FB。

filesystems

文件,內(nèi)核支持的文件系統(tǒng)類型(man filesystems)。

fs

目錄,掛載的文件系統(tǒng)信息。

interrupts

文件,每個CPU每個IO的中斷信息。依次顯示irq編號,每個cpu對該irq的處理次數(shù),中斷控制器的名字,irq的名字,以及驅(qū)動程序注冊該irq時使用的名字。

iomem

文件,IO內(nèi)存映射信息。

ioports

文件,IO端口信息。

irq

目錄,下面會為每個注冊的irq創(chuàng)建一個以irq編號為名字的子目錄。

kallsyms

文件,用于動態(tài)鏈接和和模塊綁定的符號定義。

kcore

文件,系統(tǒng)中ELF格式的物理內(nèi)存。

keys

文件,公開了讀取線程具有查看權(quán)限的鍵列表,并提供了有關(guān)每個鍵的各種信息。線程不需要擁有密鑰,該密鑰在此文件中可見。

key-users

文件,列出了在系統(tǒng)上至少具有一個密鑰的每個用戶ID的各種信息。

kmsg

文件,內(nèi)核日志信息,dmsg命令使用這個文件。

kpagecount

文件,每個物理頁幀映射的次數(shù),需要配置CONFIG_PROC_PAGE_MONITOR。

kpageflags

文件,每個物理頁幀的掩碼,需要配置CONFIG_PROC_PAGE_MONITOR。

loadavg

文件,當(dāng)前系統(tǒng)負(fù)載。

locks

文件,當(dāng)前文件鎖的狀態(tài)。

mdstat

文件,虛擬設(shè)備信息(軟raid等)。

meminfo

文件,系統(tǒng)內(nèi)存使用統(tǒng)計(jì),free命令使用了這個文件。

misc

文件,其他的主要設(shè)備(設(shè)備號為10)上注冊的驅(qū)動。

modules

文件,系統(tǒng)加載的模塊信息,相關(guān)命令為lsmod。

mounts -> self/mounts

文件,鏈接到了/self/mounts。

mtrr

文件,Memory Type Range Registers。

net -> self/net

目錄,網(wǎng)絡(luò)偽文件系統(tǒng)相關(guān)。

pagetypeinfo

文件,其他頁面分配器信息。

partitions

文件,分區(qū)信息。

sched_debug

文件,調(diào)度器debug信息。

schedstat

文件,調(diào)度器信息。

scsi

目錄,SCSI接口設(shè)備。

self -> 22699

目錄,鏈接到了當(dāng)前進(jìn)程所在的目錄。

slabinfo

文件,內(nèi)核緩存信息,需要配置CONFIG_SLAB。

softirqs

文件,系統(tǒng)軟中斷信息。

stat

文件,系統(tǒng)和內(nèi)核的統(tǒng)計(jì)信息。

swaps

文件,swap分區(qū)使用情況。

sys

目錄,系統(tǒng)變量相關(guān)信息。

sysrq-trigger

文件,可寫,觸發(fā)系統(tǒng)調(diào)用。

sysvipc

目錄,包括msg、sem、shm三個文件,為System V IPC對象。

timer_list

文件,還在運(yùn)行著的定時器列表。

timer_stats

文件,定時器狀態(tài)。

tty

目錄,tty設(shè)備相關(guān)。

uptime

文件,系統(tǒng)更新時間和進(jìn)程空閑時間。

version

文件,內(nèi)核版本信息。

vmallocinfo

文件,虛擬內(nèi)存分配信息。

vmstat

文件,內(nèi)存統(tǒng)計(jì)信息,以鍵值對形式顯示。

zoneinfo

文件,內(nèi)存區(qū)塊信息,用于分析虛擬內(nèi)存的行為。

以上就是“l(fā)inux下proc是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI