0. 前言

/proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。

它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。

由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

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

1. /proc/cpuinfo

在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下。


该文件中存放了有关 cpu的相关信息(型号,缓存大小等)


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 可访问地址空间位数

/proc文件系统(一):cpuinfo的更多相关文章

  1. proc文件系统

    在shell终端里不带任何参数,直接运行mount命令可以显示正在挂载的文件系统.其中有这么一行 none on /proc type proc (rw) 这就是/proc文件系统.第一个域显示non ...

  2. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  3. <解说linux下proc文件系统>

    proc文件系统的作用是访问系统内核信息 proc不是一个真实的文件系统,它不占系统的外存空间,只是以文件的形式为用户访问linux内核数据提供接口,因为系统内核总是动态的变化,所以我们所捕捉到的也只 ...

  4. (转)使用 /proc 文件系统来访问 Linux 内核的内容

    转载网址:http://www.ibm.com/developerworks/cn/linux/l-proc.html 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口/proc 文件系统是 ...

  5. Linux的proc文件系统

    proc,用户空间和内核空间能够通过该接口通信, 与普通文件不同的是.这些虚拟文件的内容都是动态创建的. proc文件系统是一个伪文件系统,它仅仅存在内存其中,而不占用外存空间. 它以文件系统的方式为 ...

  6. [转帖]ulimit、limits.conf、sysctl和proc文件系统

    ulimit.limits.conf.sysctl和proc文件系统 来源:https://blog.csdn.net/weixin_33918114/article/details/86882372 ...

  7. 深入理解linux系统下proc文件系统内容

    深入理解linux系统下proc文件系统内容 内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统. Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它 ...

  8. /proc文件系统(二):/proc/<pid>/stat

    0. 前言 /proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间. 它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某 ...

  9. linux文件管理之proc文件系统

    proc 文件系统 ==================================================================================== Linux ...

随机推荐

  1. Alpha 冲刺 (5/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助前后端接口的开发 测试项目运行的服务器环 ...

  2. [uboot] (番外篇)uboot relocation介绍

    http://blog.csdn.net/ooonebook/article/details/53047992 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...

  3. Spring AOP配置方式

    AOP 面向切面编程,允许在 java 应用中的方法调用的前后做一些处理. 本文通过实例介绍两种主要的Spring AOP 配置方式:xml 方式配置,注解方式配置 XML 方式配置 1. 项目包类结 ...

  4. delphi 中的浮点数 (转载)

    原文地址 Floating point numbers — Sand or dirt Floating point numbers are like piles of sand; every time ...

  5. python class中__init__函数、self

    class中包含类内变量以及方法 __init__方法 其前面带有”__“,故此函数被声明为私有方法,不可类外调用. 此方法可以带参数初始化 此方法的首参数必须是”self“(不过”self“也可以换 ...

  6. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;问题的解决

    哇,时隔两天时间,终于找到这个问题的解决办法,先看问题 这是我最近写的家庭记账本网页版,按顺序输入点击保存,总是弹出添加失败的提示 顺着找原因,把原因锁定在dao层的sql语句上,反复检查,没有找到一 ...

  7. python模块:datetime

    # Stubs for datetime # NOTE: These are incomplete! import sys from typing import Optional, SupportsA ...

  8. bzoj3514(主席树+lct)

    把边的编号看成边权,维护每个状态对应的最大生成树,得到一个数组a[i],表示第i条边在这个过程中替换的是那条边,询问时看一下a[l,r]内啊有多少个小于l的算一下答案就好:代码参考:http://bl ...

  9. .Wait()与.GetAwaiter()之间有什么区别

    两者都是同步等待操作的结果差异主要在于处理异常.使用Wait,异常堆栈跟踪不会改变并表示异常时的实际堆栈,因此如果您有一段代码在线程池线程上运行,那么您将拥有类似的堆栈 ThreadPoolThrea ...

  10. 使用CGlib出现java.lang.NoClassDefFoundError: org/objectweb/asm/Type异常

    在学习使用CGlib生成动态代理对象,项目的源代码也很简单: package proxy; import java.lang.reflect.Method; import net.sf.cglib.p ...