/proc 文件系統是一個僞文件系統,它只存在內存當中,而不佔用外存空間。linux
它以文件系統的方式爲內核與進程提供通訊的接口。用戶和應用程序能夠經過/proc獲得系統的信息,並能夠改變內核的某些參數。
因爲系統的信息,如進程,是動態改變的,因此用戶或應用程序讀取/proc目錄中的文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。c#
root@jimmy-vm:/proc# ll /proc/ dr-xr-xr-x 9 root root 0 11月 28 20:09 <pid>/ ...... dr-xr-xr-x 2 root root 0 11月 30 16:53 acpi/ dr-xr-xr-x 5 root root 0 11月 30 16:53 asound/ -r--r--r-- 1 root root 0 11月 30 16:53 buddyinfo dr-xr-xr-x 4 root root 0 11月 30 16:53 bus/ -r--r--r-- 1 root root 0 11月 30 16:53 cgroups -r--r--r-- 1 root root 0 11月 30 16:53 cmdline -r--r--r-- 1 root root 0 11月 30 16:53 consoles -r--r--r-- 1 root root 0 11月 30 16:53 cpuinfo -r--r--r-- 1 root root 0 11月 30 16:53 crypto -r--r--r-- 1 root root 0 11月 30 16:53 devices -r--r--r-- 1 root root 0 11月 30 16:53 diskstats -r--r--r-- 1 root root 0 11月 30 16:53 dma dr-xr-xr-x 2 root root 0 11月 30 16:53 driver/ -r--r--r-- 1 root root 0 11月 30 16:53 execdomains -r--r--r-- 1 root root 0 11月 30 16:53 fb -r--r--r-- 1 root root 0 11月 30 16:53 filesystems dr-xr-xr-x 5 root root 0 11月 30 16:53 fs/ -r--r--r-- 1 root root 0 11月 30 16:53 interrupts -r--r--r-- 1 root root 0 11月 30 16:53 iomem -r--r--r-- 1 root root 0 11月 30 16:53 ioports dr-xr-xr-x 57 root root 0 11月 30 16:53 irq/ -r--r--r-- 1 root root 0 11月 30 16:53 kallsyms -r-------- 1 root root 140737477881856 11月 30 16:53 kcore -r--r--r-- 1 root root 0 11月 30 16:53 keys -r--r--r-- 1 root root 0 11月 30 16:53 key-users -r-------- 1 root root 0 11月 16 14:27 kmsg -r-------- 1 root root 0 11月 30 16:53 kpagecgroup -r-------- 1 root root 0 11月 30 16:53 kpagecount -r-------- 1 root root 0 11月 30 16:53 kpageflags -r--r--r-- 1 root root 0 11月 30 16:53 loadavg -r--r--r-- 1 root root 0 11月 30 16:53 locks -r--r--r-- 1 root root 0 11月 30 16:53 mdstat -r--r--r-- 1 root root 0 11月 30 16:53 meminfo -r--r--r-- 1 root root 0 11月 30 16:53 misc -r--r--r-- 1 root root 0 11月 30 16:53 modules lrwxrwxrwx 1 root root 11 11月 30 16:53 mounts -> self/mounts dr-xr-xr-x 3 root root 0 11月 30 16:53 mpt/ -rw-r--r-- 1 root root 0 11月 30 16:53 mtrr lrwxrwxrwx 1 root root 8 11月 30 16:53 net -> self/net/ -r--r--r-- 1 root root 0 11月 30 16:53 pagetypeinfo -r--r--r-- 1 root root 0 11月 30 16:53 partitions -r--r--r-- 1 root root 0 11月 30 16:53 sched_debug -r--r--r-- 1 root root 0 11月 30 16:53 schedstat dr-xr-xr-x 4 root root 0 11月 30 16:53 scsi/ lrwxrwxrwx 1 root root 0 11月 16 14:27 self -> 107692/ -r-------- 1 root root 0 11月 30 16:53 slabinfo -r--r--r-- 1 root root 0 11月 30 16:53 softirqs -r--r--r-- 1 root root 0 11月 30 16:53 stat -r--r--r-- 1 root root 0 11月 16 14:27 swaps dr-xr-xr-x 1 root root 0 11月 16 14:27 sys/ --w------- 1 root root 0 11月 30 16:53 sysrq-trigger dr-xr-xr-x 2 root root 0 11月 30 16:53 sysvipc/ lrwxrwxrwx 1 root root 0 11月 16 14:27 thread-self -> 107692/task/107692/ -r--r--r-- 1 root root 0 11月 30 16:53 timer_list -rw-r--r-- 1 root root 0 11月 30 16:53 timer_stats dr-xr-xr-x 4 root root 0 11月 30 16:53 tty/ -r--r--r-- 1 root root 0 11月 30 16:53 uptime -r--r--r-- 1 root root 0 11月 30 16:53 version -r--r--r-- 1 root root 0 11月 30 16:53 version_signature -r-------- 1 root root 0 11月 30 16:53 vmallocinfo -r--r--r-- 1 root root 0 11月 30 16:53 vmstat -r--r--r-- 1 root root 0 11月 30 16:53 zoneinfo
在linux操做系統中,CPU的信息在啓動的過程當中被裝載到虛擬目錄/proc下的cpuinfo文件中,咱們能夠經過 cat /proc/cpuinfo 查看一下。
該文件中存放了有關 cpu的相關信息(型號,緩存大小等)api
root@jimmy-vm:/proc# cat cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 94 model name : Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz stepping : 3 microcode : 0xc2 cpu MHz : 2712.002 cache size : 6144 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch epb invpcid_single kaiser fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf bogomips : 5424.00 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management:
上面的各個參數的含義解釋以下:緩存
屬性 | 含義 |
---|---|
processor | 邏輯處理器的id。 |
vendor id | CPU製造商 |
cpu family | CPU產品系列代號 |
model | CPU屬於其系列中的哪一代的代號 |
model name | CPU屬於的名字及其編號、標稱主頻 |
stepping | CPU屬於製做更新版本 |
cpu MHz | CPU的實際使用主頻 |
cache size | CPU二級緩存大小 |
physical id | 單個CPU的標號 |
siblings | 單個CPU邏輯物理核數 |
core id | 當前物理核在其所處CPU中的編號,這個編號不必定連續 |
cpu cores | 該邏輯核所處CPU的物理核數 |
apicid | 用來區分不一樣邏輯核的編號,系統中每一個邏輯核的此編號必然不一樣,此編號不必定連續 |
fpu | 是否具備浮點運算單元(Floating Point Unit) |
fpu_exception | 是否支持浮點計算異常 |
cpuid level | 執行cpuid指令前,eax寄存器中的值,根據不一樣的值cpuid指令會返回不一樣的內容 |
wp | 代表當前CPU是否在內核態支持對用戶空間的寫保護(Write Protection) |
flags | 當前CPU支持的功能 |
bogomips | 在系統內核啓動時粗略測算的CPU速度(Million Instructions Per Second) |
clflush size | 每次刷新緩存的大小單位 |
cache_alignment | 緩存地址對齊單位 |
address sizes | 可訪問地址空間位數 |