linux 系统版本及系统位数

本文详细解析如何使用/proc/cpuinfo文件查看CPU的详细信息,包括处理器、供应商ID、物理ID、内核ID、兄弟处理器数量、内核数量等关键参数,以及如何区分i386、i586、i686指令集的微处理器,并通过实例展示了如何通过此文件查看具体的CPU信息。

我们可以用/proc/cpuinfo 查看CPU 的信息。 该文件包含系统上每个处理器的数据段落。/proc/cpuinfo 描述中有 6 个条目适用于多内核和超线程(HT技术检查:processor, vendor id, physical id, siblings, core id 和 cpu cores。

(1)processor:包括这一逻辑处理器的唯一标识符。

(2)physical id :包括每个物理封装的唯一标识符。

(3)core id :保存每个内核的唯一标识符。

(4)siblings :列出了位于相同物理封装中的逻辑处理器的数量。

(5)cpu cores :包含位于相同物理封装中的内核数量。

(6)如果处理器为英特尔处理器,则 vendor id 条目中的字符串是 GenuineIntel。

 

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

 

 

一. i386 i586 i686 之间的区别

他们指的是适用于intel i386、 i586、i686 兼容指令集的微处理器。一般来说,等级愈高的机器可接受较低等级的rpm文件。

i386—几乎所有的X86平台,不论是旧的pentum或者是新的pentum-IV与K7系统CPU,都可以正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级。

i586—就是586等级的计算机,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级。

i686—pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级。
你可以透过/proc/cpuinfo这个档案查询你的CPU等级。

 

 

二. 查看CPU 信息

 

我们可以通过/proc/cpuinfo 这个文件来查看CPU 的信息。

 

[root@qs-wgdb-1 proc]# more /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 44

model name      : Intel(R) Xeon(R) CPU           E5630  @ 2.53GHz

stepping        : 2

cpu MHz         : 2527.071

cache size      : 12288 KB

physical id     : 1

siblings        : 8

core id         : 0

cpu cores       : 4

apicid          : 32

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dt

s acpi mmx fxsr sse sse2 ss ht tm syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni

 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

bogomips        : 5054.14

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: [8]

 

processor       : 1

vendor_id       : GenuineIntel

cpu family      : 6

model           : 44

model name      : Intel(R) Xeon(R) CPU           E5630  @ 2.53GHz

stepping        : 2

cpu MHz         : 2527.071

cache size      : 12288 KB

physical id     : 0

siblings        : 8

core id         : 0

cpu cores       : 4

apicid          : 0

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dt

s acpi mmx fxsr sse sse2 ss ht tm syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni

 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

bogomips        : 5054.02

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: [8]

 

processor       : 2

vendor_id       : GenuineIntel

cpu family      : 6

model           : 44

model name      : Intel(R) Xeon(R) CPU           E5630  @ 2.53GHz

stepping        : 2

cpu MHz         : 2527.071

cache size      : 12288 KB

physical id     : 1

siblings        : 8

core id         : 1

cpu cores       : 4

apicid          : 34

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dt

s acpi mmx fxsr sse sse2 ss ht tm syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni

 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

bogomips        : 5054.04

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: [8]

 

….

 

processor       : 14

vendor_id       : GenuineIntel

cpu family      : 6

model           : 44

model name      : Intel(R) Xeon(R) CPU           E5630  @ 2.53GHz

stepping        : 2

cpu MHz         : 2527.071

cache size      : 12288 KB

physical id     : 1

siblings        : 8

core id         : 10

cpu cores       : 4

apicid          : 53

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

bogomips        : 5054.03

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: [8]

 

processor       : 15

vendor_id       : GenuineIntel

cpu family      : 6

model           : 44

model name      : Intel(R) Xeon(R) CPU           E5630  @ 2.53GHz

stepping        : 2

cpu MHz         : 2527.071

cache size      : 12288 KB

physical id     : 0

siblings        : 8

core id         : 10

cpu cores       : 4

apicid          : 21

fpu             : yes

fpu_exception   : yes

cpuid level     : 11

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 syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm

bogomips        : 5053.98

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: [8]

 

 

 

三. 相关分析

 

3.1 查看服务器位数

[root@qs-wgdb-1 proc]# arch

x86_64

 

x86_64: 64位系统

X86:32位系统

 

3.2 查看CPU 是否支持64bit

[root@qs-wgdb-1 proc]# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

16

 

结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit。

 

3.3 逻辑CPU个数:
[root@qs-wgdb-1 proc]# cat /proc/cpuinfo | grep 'processor' | wc -l

16

 

注意:这里是逻辑CPU。 就是我们在cpuinfo中看到的processor.

 

 

3.4 物理CPU个数:

[root@qs-wgdb-1 proc]# cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l

2

 

这里指的是物理CPU,就是我们在服务器上看到的2个CPU 插槽。

 

 

3.5 每个物理CPUCore的个数:
[root@qs-wgdb-1 proc]# cat /proc/cpuinfo | grep 'cpu cores' | wc -l

16

 

3.6 是否为超线程:

如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数.


[root@qs-wgdb-1 proc]# cat /proc/cpuinfo | grep 'siblings'

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

siblings        : 8

 

 

 

四. 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。

 

 

 

总结:

       从/proc/cpuinfo 这个文件,我们可以看出cpu的信息。 这个有2个概念。 一个是物理CPU个数和逻辑CPU 个数。 物理CPU 就是我们在主板上卡槽看到CPU的个数。 这个可以通过physical id 这个进行判断。 有几个不同的physical id 就有几个物理CPU。 至于逻辑CPU 个数,我们可以通过processor来判断。 这个比较简单。 如果有2个物理封装的的CPU,有16个逻辑CPU。 那么每个物理封装里面就有8个逻辑CPU。

### 如何在Linux中检查系统32还是64Linux系统中,可以通过多种方法来判断当前运行的操作系统32还是64。以下是几种常见的方法: #### 方法一:使用 `uname` 命令 打开终端并执行以下命令: ```bash uname -m ``` 如果输出为 `x86_64`,则表明该系统64的;如果是 `i686` 或 `i386`,则是32系统[^2]。 #### 方法二:使用 `arch` 命令 同样可以在终端中输入以下命令: ```bash arch ``` 此命令的结果与 `uname -m` 类似。返回值为 `x86_64` 表明系统64,而 `i686` 或 `i386` 则代表32系统[^2]。 #### 方法三:查看 `/proc/cpuinfo` 文件 通过读取 `/proc/cpuinfo` 文件的内容,可以进一步确认系统的架构信息: ```bash cat /proc/cpuinfo | grep -i flags ``` 如果在输出结果中发现 `lm`(Long Mode)标志,则说明处理器支持64模式,因此操作系统也可能是64的[^5]。 #### 方法四:利用 `getconf` 命令查询 另一种简便的方式是调用 `getconf` 工具来获取具体的信息: ```bash getconf LONG_BIT ``` 当屏幕上显示出数字 “64”,即意味着这是个64环境;反之,“32” 对应于32平台[^2]。 #### 方法五:借助 `file` 命令分析动态链接器 最后还有一种技术手段就是检验默认使用的共享对象文件属于哪种类型的构建产物: 对于可能存在的两种情况分别尝试下面两条指令之一即可得出结论——要么针对传统32-bit ELF executables寻找路径下的目标文件(`/lib/ld-linux.so.2`) ,要么就指向现代标准下更普遍适用的新地址空间布局设计所对应的选项(`/lib64/ld-linux-x86-64.so.2`) : ```bash file /lib/ld-linux.so.2 ``` 或者, ```bash file /lib64/ld-linux-x86-64.so.2 ``` 依据最终反馈出来的描述文字里面提到的相关特性参数就可以轻松辨别出来了[^2]。 --- ### 结论 综上所述,推荐优先采用较为直观简单的 `uname -m`, `arch`, 和 `getconf LONG_BIT` 这三种方式来进行快速判定工作负载所在的硬件平台上实际部署的是哪一类别的GNU/Linux发行版实例及其配套的基础软件栈生态链路构成状况概述[^1][^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值