获得Linux系统的位数(64 or 32)

今天一个朋友问我ESX作为一个以Linux为核心的系统,它的系统位数到底是32位还是64位,而我的实际机房生产环境中所跑的ESX为4.0系统,硬件平台为纯64位计算的HP DL380 G6与DL580 G5。

获取Linux的系统位数如下:

一、采用最常用uname -a命令,得到类似如下2个结果(来自一个32位CentOS与64位ESX)

  • CentOS:Linux centos.is36.com 2.6.18.8 #2 Thu Sep 24 14:29:28 GMT 2009 i686 i686 i386 GNU/Linux
  • ESX:Linux esx.is36.com 2.6.18-128.ESX #1 Fri Apr 10 00:08:17 PDT 2009 x86_64 x86_64 x86_64 GNU/Linux

从上面会看到较为明显的区别,一个是i386,另外一个是x86_64。

二、采用"getconf WORD_BIT"和"getconf LONG_BIT"获得word和long的位数,这2个类型的长度可以决定系统的位数,具体如下:

  • CentOS:执行如上2个命令,均返回32。
  • ESX:执行如上2个命令,分别返回32与64。
  1. 32位的系统中int类型和long类型一般都是4字节的。如果你的C语言教材里写的不是这样,劝你们老师换换教材吧。
  2. 64位的系统中int类型还是4字节的,但是long已变成了8字节的啦。这个教材里没写没关系,写了说明编者追踪最新的技术。

三、在shell下执行“echo $HOSTTYPE”获得系统位数信息。

  • CentOS:返回i686
  • ESX:返回x86_64

因为测试的ESX为4.0版,之前测试过的3.5版应该为32位系统(未经测试)。

上一篇: 西联汇款收取Google AdSense广告收入
下一篇: 25元买了西湖电影院双人超值观影套票

发表评论