linux cpu运行模式,Linux上的32位,64位CPU操作模式

lscpu告诉您您的架构是i686(Intel 32位CPU),并且您的CPU支持32位和64位操作模式。您将无法安装x64构建的应用程序,因为它们是专门为x64体系结构构建的。

您的特定CPU可以处理i386或i686内置软件包。有多种方法可以验证您的体系结构和操作系统首选项。

您已经知道,可以使用命令lscpu。它可以很好地让您大致了解CPU的功能。

$ lscpu

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

CPU(s): 4

Thread(s) per core: 2

Core(s) per socket: 2

CPU socket(s): 1

NUMA node(s): 1

Vendor ID: GenuineIntel

CPU family: 6

Model: 37

Stepping: 5

CPU MHz: 1199.000

Virtualization: VT-x

L1d cache: 32K

L1i cache: 32K

L2 cache: 256K

L3 cache: 3072K

NUMA node0 CPU(s): 0-3

实际上,这是大多数工具(例如 lscpu用于显示)。我发现此输出有点不错,因为它向您显示了有关特定CPU的型号信息。它还会为您显示CPU可能具有的每个内核的一部分。

这是单核的输出:

$ cat /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 37

model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz

stepping : 5

cpu MHz : 1466.000

cache size : 3072 KB

physical id : 0

siblings : 4

core id : 0

cpu cores : 2

apicid : 0

initial 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 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 pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid

bogomips : 5319.74

clflush size : 64

cache_alignment : 64

address sizes : 36 bits physical, 48 bits virtual

power management:

这是一个核心的每个部分的前3行:

$ grep processor -A 3 /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

cpu family : 6

model : 37

--

processor : 1

vendor_id : GenuineIntel

cpu family : 6

model : 37

--

processor : 2

vendor_id : GenuineIntel

cpu family : 6

model : 37

--

processor : 3

vendor_id : GenuineIntel

cpu family : 6

model : 37

的输出/proc/cpuinfo还可以通过显示的各种标志告诉您CPU提供的体系结构类型。请注意上述命令中的这些行:

$ grep /proc/cpuinfo | head -1

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 pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid

结尾的标志_lm告诉您处理器支持“长模式”。长模式是64位的另一个名称。

此命令可用于确定构建内核以支持的平台。例如:

64位内核

$ uname -a

Linux grinchy 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

32位内核

$ uname -a

Linux skinner.bubba.net 2.6.18-238.19.1.el5.centos.plus #1 SMP Mon Jul 18 10:07:01 EDT 2011 i686 i686 i386 GNU/Linux

该输出还可以使用开关,被细化了一下[-m|--machine],[-p|--processor]和[-i|--hardware-platform]。

这是上述相同系统的输出。

64位

$ uname -m; uname -p; uname -i

x86_64

x86_64

x86_64

32位

$ uname -m; uname -p; uname -i

i686

i686

i386

注意:还有一个简短版本uname -m,您可以将其作为独立命令运行arch。它返回与完全相同的东西uname -m。您可以arch在coreutils文档中阅读有关该命令的更多信息。

摘抄

arch打印机器硬件名称,等效于'uname -m'。

可能是分析硬件的最佳工具 hwinfo。此软件包可以直接从终端向您展示几乎所有您想要/需要的有关硬件的任何信息。当我需要系统主板上的某个芯片上的一些信息或需要了解PCI插槽中的板的版本时,这为我节省了数十倍的时间。

您可以针对计算机的不同子系统查询它。在我们的案例中,我们将研究cpu子系统。

$ hwinfo --cpu

01: None 00.0: 10103 CPU

[Created at cpu.301]

Unique ID: rdCR.a2KaNXABdY4

Hardware Class: cpu

Arch: X86-64

Vendor: "GenuineIntel"

Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"

Features: 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,pclmulqdq,dtes64,monitor,ds_cpl,vmx,smx,est,tm2,ssse3,cx16,xtpr,pdcm,sse4_1,sse4_2,popcnt,aes,lahf_lm,ida,arat,tpr_shadow,vnmi,flexpriority,ept,vpid

Clock: 2666 MHz

BogoMips: 5319.74

Cache: 3072 kb

Units/Processor: 16

Config Status: cfg=new, avail=yes, need=no, active=unknown

再次,类似于/proc/cpuinfo此命令,将向您显示多核系统中每个单个核的组成。这是核心每个部分的第一行,仅供您参考。

$ hwinfo --cpu | grep CPU

01: None 00.0: 10103 CPU

Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"

02: None 01.0: 10103 CPU

Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"

03: None 02.0: 10103 CPU

Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"

04: None 03.0: 10103 CPU

Model: 6.37.5 "Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz"

这可能是告诉您的CPU向OS展示哪种体系结构的最明显的方法。利用getconf,您查询系统变量LONG_BIT。这不是环境变量。

# 64-bit system

$ getconf LONG_BIT

64

# 32-bit system

$ getconf LONG_BIT

32

另一个工具,功能类似于hwinfo。您可以查询有关底层硬件的几乎所有信息。例如:

# 64-bit Kernel

$ lshw -class cpu

*-cpu

description: CPU

product: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz

vendor: Intel Corp.

physical id: 6

bus info: cpu@0

version: Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz

slot: None

size: 1199MHz

capacity: 1199MHz

width: 64 bits

clock: 133MHz

capabilities: fpu fpu_exception wp 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 x86-64 constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid cpufreq

configuration: cores=2 enabledcores=2 threads=4

# 32-bit Kernel

$ lshw -class cpu

*-cpu:0

description: CPU

product: Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz

vendor: Intel Corp.

physical id: 400

bus info: cpu@0

version: 6.15.2

serial: 0000-06F2-0000-0000-0000-0000

slot: Microprocessor

size: 1800MHz

width: 64 bits

clock: 800MHz

capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe x86-64 constant_tsc pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm

configuration: id=1

*-logicalcpu:0

description: Logical CPU

physical id: 1.1

width: 64 bits

capabilities: logical

*-logicalcpu:1

description: Logical CPU

physical id: 1.2

width: 64 bits

capabilities: logical

CPU操作模式?

一些命令报告说,看起来像32位CPU支持32位和64位模式。这可能会造成一些混乱和误导,但是如果您了解CPU的历史(特别是Intel),就会知道他们有使用其产品玩游戏的历史,其中CPU的指令集可能支持16位,但可以处理2 ^ 16以上的RAM。

这些CPU发生了同样的事情。大多数人都知道32位CPU只能寻址2 ^ 32 = 4GB RAM。但是有些版本的CPU可以解决更多问题。这些CPU通常会使用带有后缀PAE的Linux内核-物理地址扩展。将启用了PAE的内核与此硬件一起使用将允许您在32位系统上寻址多达64GB。

您可能会认为,然后为什么我需要64位体系结构?这些CPU的问题是单个进程空间限制为2 ^ 32,因此,如果您有一个大型仿真或计算程序,需要的RAM中的可寻址空间超过2 ^ 32,那么这对您没有帮助。接着就,随即。

看看P6微体系结构(i686)上的Wikipedia页面获取更多信息。

TL; DR-那么我的CPU架构到底是什么?

通常,由于上面的许多命令和方法正在松散地使用术语“体系结构”,因此可能会造成混淆。如果您对基础操作系统是32位还是64位感兴趣,请使用以下命令:

lscpu

getconf LONG_BIT

ame

另一方面,如果您想了解CPU的体系结构,请使用以下命令:

/ proc / cpuinfo

资讯网

sh

具体来说,如果您使用的是lshw,则需要查找显示“ width:64”或“ width:32”之类的字段,或者查找标志:

lm:长模式(x86-64:amd64,也称为Intel 64,即支持64位)

lahf_lm:长模式下的LAHF / SAHF

这两个标志的出现告诉您CPU是64位的。他们的缺席告诉您它是32位。

有关CPU标志的更多信息,请参见这些URL。

参考文献

手册页

文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值