Linux 上的 /proc是一个虚拟文件系统,在系统启动后挂载在 /proc 上,/proc 包含了很多内核和系统信息用来展示 Linux 内核是如何展示硬件的,比如在 /proc/cpuinfo 里可以看到一些关于 CPU 的信息,其中的 flags 包含了很多用来表示 CPU 特征的参数:

$ cat /proc/cpuinfo | grep flags
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good
xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1
sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid

具体每个 flag 缩写代表什么意思呢?关于 Linux 的最权威答案永远来自源代码,VPSee 在内核源代码里找到了每个 flag 的相关注释,通过这些注释可以很方便我们理解这些 flags 缩写:

# vi /home/vpsee/linux-2.6.31.8/arch/x86/include/asm/cpufeature.h
...
/* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */
#define X86_FEATURE_FPU         (0*32+ 0) /* Onboard FPU */
#define X86_FEATURE_VME         (0*32+ 1) /* Virtual Mode Extensions */
#define X86_FEATURE_DE          (0*32+ 2) /* Debugging Extensions */
#define X86_FEATURE_PSE         (0*32+ 3) /* Page Size Extensions */
#define X86_FEATURE_TSC         (0*32+ 4) /* Time Stamp Counter */
#define X86_FEATURE_MSR         (0*32+ 5) /* Model-Specific Registers */
#define X86_FEATURE_PAE         (0*32+ 6) /* Physical Address Extensions */
#define X86_FEATURE_MCE         (0*32+ 7) /* Machine Check Exception */
#define X86_FEATURE_CX8         (0*32+ 8) /* CMPXCHG8 instruction */
#define X86_FEATURE_APIC        (0*32+ 9) /* Onboard APIC */
#define X86_FEATURE_SEP         (0*32+11) /* SYSENTER/SYSEXIT */
#define X86_FEATURE_MTRR        (0*32+12) /* Memory Type Range Registers */
#define X86_FEATURE_PGE         (0*32+13) /* Page Global Enable */
#define X86_FEATURE_MCA         (0*32+14) /* Machine Check Architecture */
#define X86_FEATURE_CMOV        (0*32+15) /* CMOV instructions *//* (plus FCMOVcc, FCOMI with FPU) */
#define X86_FEATURE_PAT         (0*32+16) /* Page Attribute Table */
#define X86_FEATURE_PSE36       (0*32+17) /* 36-bit PSEs */
#define X86_FEATURE_PN          (0*32+18) /* Processor serial number */
#define X86_FEATURE_CLFLSH      (0*32+19) /* "clflush" CLFLUSH instruction */
#define X86_FEATURE_DS          (0*32+21) /* "dts" Debug Store */
#define X86_FEATURE_ACPI        (0*32+22) /* ACPI via MSR */
#define X86_FEATURE_MMX         (0*32+23) /* Multimedia Extensions */
#define X86_FEATURE_FXSR        (0*32+24) /* FXSAVE/FXRSTOR, CR4.OSFXSR */
#define X86_FEATURE_XMM         (0*32+25) /* "sse" */
#define X86_FEATURE_XMM2        (0*32+26) /* "sse2" */
#define X86_FEATURE_SELFSNOOP   (0*32+27) /* "ss" CPU self snoop */
#define X86_FEATURE_HT          (0*32+28) /* Hyper-Threading */
#define X86_FEATURE_ACC         (0*32+29) /* "tm" Automatic clock control */
#define X86_FEATURE_IA64        (0*32+30) /* IA-64 processor */
#define X86_FEATURE_PBE         (0*32+31) /* Pending Break Enable *//* AMD-defined CPU features, CPUID level 0x80000001, word 1 */
/* Don't duplicate feature flags which are redundant with Intel! */
#define X86_FEATURE_SYSCALL     (1*32+11) /* SYSCALL/SYSRET */
#define X86_FEATURE_MP          (1*32+19) /* MP Capable. */
#define X86_FEATURE_NX          (1*32+20) /* Execute Disable */
#define X86_FEATURE_MMXEXT      (1*32+22) /* AMD MMX extensions */
#define X86_FEATURE_FXSR_OPT    (1*32+25) /* FXSAVE/FXRSTOR optimizations */
#define X86_FEATURE_GBPAGES     (1*32+26) /* "pdpe1gb" GB pages */
#define X86_FEATURE_RDTSCP      (1*32+27) /* RDTSCP */
#define X86_FEATURE_LM          (1*32+29) /* Long Mode (x86-64) */
#define X86_FEATURE_3DNOWEXT    (1*32+30) /* AMD 3DNow! extensions */
#define X86_FEATURE_3DNOW       (1*32+31) /* 3DNow! */
.../* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
...
/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
...
/* More extended AMD flags: CPUID level 0x80000001, ecx, word 6 */
...

仅有 flags 缩写和注释不足以理解 flag 的含义,但是足够发挥个人的 googleability 了,比如直接搜索 msr 不会得到任何有用信息,但是利用上面的注释搜索 Model-Specific Registers(google “Model-Specific Registers”)就会得到很多信息,学习的过程就是不断提高 googleability 的过程:)

转于:http://www.vpsee.com/2010/11/what-are-cpu-feature-flags-in-proc/

/proc/cpuinfo 里的 CPU flags相关推荐

  1. /proc/cpuinfo参数说明查看CPU参数

    查看CPU参数 [root@hadoop ~]# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 23 mo ...

  2. lscpu与cat /proc/cpuinfo获取的CPU信息释义

    名词释义 processor 每个逻辑处理器的唯一标识符,即逻辑处理器(逻辑核)编号 core id 每个内核的唯一标识符,即在当前物理核中它的编号,每个 core id 均代表一个唯一的处理器内核, ...

  3. /proc/cpuinfo文件分析(查看CPU信息)

    2019独角兽企业重金招聘Python工程师标准>>> 在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/pr ...

  4. Linux系统查看CPU信息命令cat /proc/cpuinfo详细说明

    Linux操作系统服务器如何查看CPU处理器信息?使用命令cat /proc/cpuinfo可以查看CPU详细信息,包括CPU核数.逻辑CPU.物理CPU个数.CPU是否启用超线程等,阿里云服务器网分 ...

  5. 通过读取/proc/cpuinfo获取CPU信息

    1.简介 上一篇介绍了如何通过cpuid指令获取CPU信息,本文主要介绍如何通过读取/proc/cpuinfo文件获取CPU信息.本文从"什么是/proc文件系统","如 ...

  6. linux 下/proc/cpuinfo三级缓存,linux /proc/cpuinfo文件分析

    基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含如下内容: processor : 0 vendor_id :Ge ...

  7. linux下/proc/cpuinfo文件

    /proc/cpuinfo可以用来查看CPU信息,相关字段如下: processor :系统中逻辑处理核的编号.对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核.或者使用超线程技术 ...

  8. linux /proc/cpuinfo文件分析

    为什么80%的码农都做不了架构师?>>>    基于不同指令集(ISA)的CPU产生的/proc/cpuinfo文件不一样,基于X86指令集CPU的/proc/cpuinfo文件包含 ...

  9. linux 下/proc/cpuinfo三级缓存,51CTO博客-专业IT技术博客创作平台-技术成就梦想

    在Linux系统中,提供了proc文件系统显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以通过/proc/cpuinfo文件得到.本文章针对该文件进行简单的总结. 基于不同指 ...

最新文章

  1. IDEA函数调用关系图插件
  2. 《LeetCode力扣练习》第39题 组合总和 Java
  3. [詹兴致矩阵论习题参考解答]习题6.6
  4. python字符串的方法和列表的方法_python 字符串方法及列表,元组,字典(一)
  5. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设
  6. 【jeecg-mybatis版本】 mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
  7. Android应用程序启动过程源代码分析(5)
  8. VB.net编码规范(转帖)
  9. vue项目打包部署-----解决打包后访问资源失败问题
  10. 【狂神css笔记】美化网页元素
  11. Vue引入vue-qr组件实现生成二维码,且实现在二维码中间加入logo图片功能
  12. Kvaser Memorator数据记录仪通过KVmlib配置和读取SD卡
  13. 服务器是计算机主机吗,服务器是什么(服务器和电脑主机的区别)
  14. 享元模式——滴滴打车的共享经济思维
  15. 微信公众号做淘宝优惠券找券查券搜券和返利机器人的详细配置教程
  16. 广东英语高考怎么计算机,如何应对广东高考英语听说考试
  17. 中兴和华为的面试经历
  18. 如何获得更好的交互体验_制定更好的用户体验决定的4条聪明的心理学规则
  19. 【ML】 第四章 训练模型
  20. 计算机内存占用过高怎么办,电脑内存占用过高怎么办?

热门文章

  1. 2022年苹果二手报价最新
  2. 学生台灯护眼灯哪个牌子好性价比高?学生护眼台灯十大牌子
  3. 动态数组的使用之char *res=new char(strlen(src)+1)
  4. 瘦客户机为何不瘦反胖?
  5. 天气预报服务器响应超时,天气预报为啥有时不准? - 广西首页 -中国天气网
  6. 学生成绩管理系统数据库设计--MySQLSQL Server
  7. 个人对PIN码的基本理解
  8. 最新表白墙网站源码 手机电脑自适应 带后台
  9. 模具腐蚀皮纹工艺原理及其流程
  10. 五年高考三年模拟暗部软件库_8款实用的手机学习软件推荐,高中生学习必备!...