理解 /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model          : 6
model name     : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping        : 5
cpu MHz        : 3143.295
cache size       : 0 KB
physical id       0
siblings         : 1
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug       : no
fpu             : yes
fpu_exception    : yes
cpuid level      : 6
wp             : yes
flags           : fpu vme pse tsc msr pae cx8 sep pge cmov acpi mmx fxsr sse sse2
bogomips       : 1674.44

rpm i386 i586 i686 之间的区别

有的 rpm有分 i386 i586 i686等不同版本,如:
   abc-1.2.3-4.i386.rpm
   abc-1.2.3-4.i586.rpm
   abc-1.2.3-4.i686.rpm
  它们有什么不同呢?

  这里的 i386 i586 i686指的是适用于 intel i386 i586i686 兼容指令集的微处理器。一般来说,等级愈高的机器可接受较低等级的 rpm文件。
i386
—几乎所有的 X86平台,不论是旧的 pentum或者是新的 pentum-IVK7系统 CPU,都可以正常工作, i指得是 Intel兼容的 CPU,至于 386就是 CPU的等级。
i586—就是 586等级的计算机,包括 pentum第一代 MMX CPUAMDK5K6系统 CPUsocket7插脚)等 CPU都是这个等级。
i686pentum 2 以后的 Intel系统 CPUK7以后等级的 CPU都属于这个 686等级。
你可以透过 /proc/cpuinfo这个档案查询你的 CPU等级。

/proc/cpuinfo

This virtual file identifies the type of processor used by your system. The following is an example of the output typical of /proc/cpuinfo:
         processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 7 cpu MHz : 2392.371 cache size : 512 KB physical id : 0 siblings : 2 runqueue : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes 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 bogomips : 4771.02 
      
·         processor Provides each processor with an identifying number. On systems that have one processor, only a 0 is present.
·         cpu family Austhoritatively identifies the type of processor in the system. For an Intel-based system, place the number in front of "86" to determine the value. This is particularly helpful for those attempting to identify the architecture of an older system such as a 586, 486, or 386. Because some RPM packages are compiled for each of these particular architectures, this value also helps users determine which packages to install.
·         model name Displays the common name of the processor, including its project name.
·         cpu MHz Shows the precise speed in megahertz for the processor to the thousandths decimal place.
·         cache size Displays the amount of level 2 memory cache available to the processor.
·         siblings Displays the number of sibling CPUs on the same physical CPU for architectures which use hyper-threading.
·         flags Defines a number of different qualities about the processor, such as the presence of a floating point unit (FPU) and the ability to process MMX instructions.

Understanding /proc/cpuinfo

Example:

$ uname -r
2.6.18-8.el5
How many physical processors are there?
grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
2
How many virtual processors are there?
$ grep ^processor /proc/cpuinfo | wc -l
4
Are the processors dual-core (or multi-core)?
$ grep 'cpu cores' /proc/cpuinfo
cpu cores       : 2
cpu cores       : 2
cpu cores       : 2
cpu cores       : 2


"2" indicates the two physical processors are dual-core, resulting in 4 virtual processors.

If "1" was returned, the two physical processors are single-core. If the processors are single-core, and the number of virtual processors is greater than the number of physical processors, the CPUs are using hyper-threading. Hyper-threading is supported if
ht is present in the CPU flags and you are using an SMP kernel.
Are the processors 64-bit?
A 64-bit processor will have lm ("long mode") in the  flags section of cpuinfo . A 32-bit processor will not.

e.g.,

flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
What do the CPU flags mean?
The CPU flags are briefly described in the kernel header file cpufeature.h .
 

proc/cpuinfo 确定系统的CPU情况

 
  一些操作系统的最新版本已经更新了 /proc/cpuinfo 文件,以支持多路平台。如果您的系统中的 /proc/cpuinfo 文件能够正确地反映出处理器信息,那么就不需要执行上述步骤。反之,可采用本文中的信息进行解释。

/proc/cpuinfo
文件包含系统上每个处理器的数据段落。 /proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程( HT )技术检查: processor , vendor id, physical id, siblings, core id cpu cores
  • processor 条目包括这一逻辑处理器的唯一标识符。
  • physical id 条目包括每个物理封装的唯一标识符。
  • core id 条目保存每个内核的唯一标识符。
  • siblings 条目列出了位于相同物理封装中的逻辑处理器的数量。
  • cpu cores 条目包含位于相同物理封装中的内核数量。
  • 如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel

拥有相同 physical id 的所有逻辑处理器共享同一个物理插座。每个 physical id 代表一个唯一的物理封装。 Siblings 表示位于这一物理封装上的逻辑处理器的数量。它们可能支持也可能不支持超线程( HT )技术。每个 core id 均代表一个唯一的处理器内核。所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。如果有一个以上逻辑处理器拥有相同的 core id physical id ,则说明系统支持超线程( HT )技术。如果有两个或两个以上的逻辑处理器拥有相同的 physical id ,但是 core id 不同,则说明这是一个多内核处理器。 cpu cores 条目也可以表示是否支持多内核。

例如,如果系统包含两个物理封装,每个封装中又包含两个支持超线程( HT )技术的处理器内核,则 /proc/cpuinfo 文件将包含此数据。(注:数据并不在表格中。)

 processor
 0
 1
 2
 3
 4
 5
 6
 7
 physical id
 0
 1
 0
 1
 0
 1
 0
 1
 core id
 0
2
1
 3
 0
 2
 1
 3
 siblings
 4
 4
 4
 4
 4
 4
 4
 4
 cpu cores
 2
 2
 2
 2
 2
 2
 2
 2

此例说明逻辑处理器 0 4 驻留在物理封装 0 的内核 0 上。这就表示逻辑处理器 0 4 支持超线程( HT )技术。相同的工作可用于封装 0 内核 1 上的逻辑处理器 2 6 ,封装 1 内核 2 上的逻辑处理器 1 5 ,以及封装 1 内核 3 上的逻辑处理器 3 7 。此系统支持超线程( HT )技术,因为两个逻辑处理器共享同一个内核。有两种方式可以确定是否支持多内核。由于内核 0 1 存在于封装 0 上,而内核 2 3 存在于封装 1 上,所以这是一个多内核系统。此外, cpu cores 条目为 2 ,也说明有两个内核驻留在物理封装中。这是一个多路系统,因为有两个封装。

值得注意的是 physical id core id 的编号可能是也可能不是连续的。系统上有两个物理封装并不罕见,而且 physical id 等于 0 3

CPU ID

CPU ID CPU 生产厂家为识别不同类型的 CPU ,而为 CPU 制订的不同的单一的代码;不同厂家的 CPU ,其 CPU ID 定义也是不同的;如 “0F24” Inter 处理器)、 “681H” AMD 处理器),根据这些数字代码即可判断 CPU 属于哪种类型,这就是一般意义上的 CPU ID  
于计算机使用的是十六进制,因此 CPU ID 也是以十六进制表示的。 Inter 处理器的 CPU ID 一共包含四个数字,如 “0F24” ,从左至右分别表示 Type (类型)、 Family (系列)、 Mode (型号)和 Stepping (步进编号)。从 CPUID “068X” 的处理器开始, Inter 另外增 加了 Brand ID (品种标识)用来辅助应用程序识别 CPU 的类型,因此根据 “068X”CPUID 还不能正确判别 Pentium Celerom 处理 器。必须配合 Brand ID 来进行细分。 AMD 处理器一般分为三位,如 “681” ,从左至右分别表示为 Family (系列)、 Mode (型号)和 Stepping (步进编号)。  
Type
(类型)  
类型标识用来区别 INTEL 微处理器是用于由最终用户安装,还是由专业个人计算机系 统集成商、服务公司或制作商安装;数字 “1” 标识所测试的微处理器是用于由用户安装的;数字 “0” 标识所测试的微处理器是用于由专业个人计算机系统集成 商、服务公司或制作商安装的。我们通常使用的 INTEL 处理器类型标识都是 “0” “0F24”CPUID 就属于这种类型。  
Family
(系列)  
列标识可用来确定处理器属于那一代产品。如 6 系列的 INTEL 处理器包括 Pentium Pro Pentium II Pentium II Xeon Pentium III Pentium III Xeon 处理器。 5 系列(第五代)包括 Pentium 处理器和采用 MMX 技术的 Pentium 处理器。 AMD 6 系列实际指有 K7 系列 CPU ,有 DURON ATHION 两大类。最新一代的 INTEL Pentium 4 系列处理器(包括相同核心的 Celerom 处理器)的系列值为 “F” 
Mode
(型号)  
型号标识可用来 确定处理器的制作技术以及属于该系列的第几代设计(或核心),型号与系列通常是相互配合使用的,用于确定计算机所安装的处理器是属于某系列处理器的哪种特 定类型。如可确定 Celerom 处理器是 Coppermine 还是 Tualutin 核心; Athlon XP 处理器是 Paiomino 还是 Thorouhgbred 核心。  
Stepping
(步进编号)  
步进编号用来标识处理器的设计或制作版本,有助于控制和跟踪处理器的更 改,步进还可以让最终用户更具体地识别其系统安装的处理器版本,确定微处理器的内部设计或制作特性。步进编号就好比处理器的小版本号,如 CPUID “686” “686A” 就好比 WINZIP8.0 8.1 的关系。步进编号和核心步进是密切联系的。如 CPUID “686” Pentium III 处理器是 cCO 核心,而 “686A” 表示的是更新版本 cD0 核心。  
Brand ID
(品种标识)  
INTEL
Coppermine 核心的处理器开始引入 Brand ID 作为 CPU 的辅助识别手段。如我们通过 Brand ID 可以识别出处理器究竟是 Celerom 还是 Pentium 4