中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

linux下proc是什么

發布時間:2023-03-15 14:22:07 來源:億速云 閱讀:110 作者:iii 欄目:建站服務器

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

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

proc被稱為虛擬文件系統,它是一個控制中心,可以通過更改其中某些文件改變內核運行狀態,它也是內核提空給我們的查詢中心,用戶可以通過它查看系統硬件及當前運行的進程信息。

Linux中許多工具的數據來源正是proc目錄中的內容,比如lsmod的命令是cat /proc/modules的別名。

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

就文件系統這一術語而言,/ proc目錄并不是真正的文件系統,它是一個虛擬文件系統,有時也被稱為進程信息偽文件系統。

proc 放置的數據都是在內存當中,例如系統內核、進程、外部設備的狀態及網絡狀態等。因為這個目錄下的數據都是在內存當中,所以本身不占任何硬盤空間。

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

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

linux proc文件系統詳解

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

PID

目錄,系統中當前運行的每一個進程都有對應的一個目錄在/proc下,以進程的 PID號為目錄名.

  • attr

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

  • current

    文件,當前的安全相關的屬性。

  • exec

    文件,執行命令execve時設置的安全相關的屬性。

  • fscreate

    文件,執行命令open、mkdir、symlink、mknod時設置的安全相關的屬性。

  • keycreate

    文件,執行命令add_key時設置的安全相關的屬性。

  • prev

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

  • sockcreate

    文件,創建socket時設置的安全相關的屬性。

  • autogroup

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

  • auxv

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

  • cgroup

    文件,進程所屬的控制組,格式為冒號分隔的三個字段,分別是結構ID、子系統、控制組,需配置CONFIG_CGROUPS。

  • clear_refs

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

  • cmdline

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

  • comm

    文件,進程的命令名,不同的線程(man clone prctl pthread_setname_np)可能有不同的線程名,位置在“task/[tid]/comm”,名字長度超過TASK_COMM_LEN時會被截斷。

  • coredump_filter

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

  • cpuset

    文件,控制CPU和內存的節點(man cpuset)。

  • cwd -> /

    目錄,符號鏈接到當前工作目錄。

  • environ

    文件,環境變量。

  • exe

    文件,符號鏈接到啟動進程的完整命令。q

  • fd

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

  • fdinfo

    目錄,包含當前fd的信息,不同類型的fd信息不同。

  • gid_map

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

  • io

    文件,IO信息。

  • limits

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

  • loginuid

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

  • map_files

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

  • maps

    文件,內存映射信息。

  • mem

    文件,用于通過open、read、lseek訪問進程的內存頁。

  • mountinfo

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

  • mounts

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

  • mountstats

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

  • net

    目錄,保存進程的網絡相關文件和目錄。

  • ns

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

  • numa_maps

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

  • oom_adj

    文件,調整OOM分數,OOM即Out Of Memory,發生OOM時OOM Killer根據OOM分數殺掉分數高的進程,默認值為0,會繼承自父進程的設置。

  • oom_score

    文件,OOM分數。

  • oom_score_adj

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

  • pagemap

    文件,當前進程的虛擬內存頁映射信息,需要配置CONFIG_PROC_PAGE_MONITOR。

  • personality

    文件,使進程個性標志在/proc中可見。因為一個進程的個性可能是敏感的(例如READ_IMPLIES_EXEC),所以這個文件只能被進程所有者讀。

  • projid_map

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

  • patch_state

    文件,公開每個任務的補丁狀態值,以便用戶可以確定哪些任務正在阻止修補操作的完成。

  • root -> /

    目錄,鏈接到了當前進程的根目錄。

  • sched

    文件,進程的調度統計、狀態信息。

  • schedstat

    文件,進程的調度信息。

  • sessionid

    文件,進程會話ID,默認4294967295。

  • setgroups

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

  • smaps

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

  • stack

    文件,內核空間的函數調用堆棧,需要配置CONFIG_STACKTRACE。

  • stat

    文件,進程狀態信息,用于ps命令。

  • statm

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

  • status

    文件,可讀性好的進程相關信息。

  • syscall

    文件,系統調用相關信息,需要配置CONFIG_HAVE_ARCH_TRACEHOOK。

  • task

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

  • timers

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

  • uid_map

    文件,用戶ID映射信息。

  • wchan

    文件,進程休眠時內核中相應位置的符號表示,如do_wait。

acpi/wakeup

文件,設備喚醒操作。

buddyinfo

文件,用于診斷內存碎片問題。

bus

目錄,已安裝的總線。

  • input/devices

    文件,輸入設備信息。

  • input/handlers

    文件,句柄信息。

  • pci/00/00.0-08.0

    文件,pci插口信息。

  • pci/devices

    文件,pci設備信息。

cgroups

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

cmdline

文件,系統啟動時傳遞給Linux內核的參數,如lilo、grub等boot管理模塊。

consoles

文件,要查看系統控制臺/dev/console中當前使用的設備行字符,你可以簡單地查看/proc/console文件.

cpuinfo

文件,CPU和系統架構信息,lscpu命令使用這個文件。

crypto

文件,內核加密API提供的加密列表。

devices

文件,設備相關信息。

diskstats

文件,磁盤狀態。

dma

文件,dma即Direct Memory Access。

driver

  • nvram

    文件,提供對 PC 和 Ataris 上實時時鐘中的非易失性存儲器的訪問。在 PC 上,這通常稱為 CMOS 內存并存儲 BIOS 配置選項。

  • rtc

    文件,系統運行時配置。

execdomains

文件,執行域列表。

fb

文件,Frame Buffer信息,需要配置CONFIG_FB。

filesystems

文件,內核支持的文件系統類型(man filesystems)。

fs

目錄,掛載的文件系統信息。

interrupts

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

iomem

文件,IO內存映射信息。

ioports

文件,IO端口信息。

irq

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

kallsyms

文件,用于動態鏈接和和模塊綁定的符號定義。

kcore

文件,系統中ELF格式的物理內存。

keys

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

key-users

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

kmsg

文件,內核日志信息,dmsg命令使用這個文件。

kpagecount

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

kpageflags

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

loadavg

文件,當前系統負載。

locks

文件,當前文件鎖的狀態。

mdstat

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

meminfo

文件,系統內存使用統計,free命令使用了這個文件。

misc

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

modules

文件,系統加載的模塊信息,相關命令為lsmod。

mounts -> self/mounts

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

mtrr

文件,Memory Type Range Registers。

net -> self/net

目錄,網絡偽文件系統相關。

pagetypeinfo

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

partitions

文件,分區信息。

sched_debug

文件,調度器debug信息。

schedstat

文件,調度器信息。

scsi

目錄,SCSI接口設備。

self -> 22699

目錄,鏈接到了當前進程所在的目錄。

slabinfo

文件,內核緩存信息,需要配置CONFIG_SLAB。

softirqs

文件,系統軟中斷信息。

stat

文件,系統和內核的統計信息。

swaps

文件,swap分區使用情況。

sys

目錄,系統變量相關信息。

sysrq-trigger

文件,可寫,觸發系統調用。

sysvipc

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

timer_list

文件,還在運行著的定時器列表。

timer_stats

文件,定時器狀態。

tty

目錄,tty設備相關。

uptime

文件,系統更新時間和進程空閑時間。

version

文件,內核版本信息。

vmallocinfo

文件,虛擬內存分配信息。

vmstat

文件,內存統計信息,以鍵值對形式顯示。

zoneinfo

文件,內存區塊信息,用于分析虛擬內存的行為。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜南县| 连江县| 若羌县| 德兴市| 雷山县| 邢台县| 合水县| 黑水县| 虞城县| 玉环县| 抚宁县| 通海县| 东安县| 综艺| 博乐市| 蚌埠市| 高雄县| 扎囊县| 周口市| 措美县| 和龙市| 开江县| 澳门| 襄樊市| 兴隆县| 龙口市| 古蔺县| 长治市| 潼关县| 手机| 远安县| 井研县| 迁安市| 林西县| 都昌县| 邵武市| 宜城市| 松原市| 柏乡县| 绿春县| 东阳市|