免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linewer
打印 上一主题 下一主题

也谈-如何用命令查询一个机器是32位还是64位? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-10-12 10:01 |只看该作者
(1)32OS机子上
$getconf LONG_BIT
32
$ getconf WORD_BIT
32
(2)64OS机子上
$getconf LONG_BIT
64
$getconf WORD_BIT
32    #???这个为啥都是4?
一个word在程序语言里不是2字节16位么?一个双字(DWORD)是二个字(WORDS)或三十二位?  (这是我以前学的)哪位能解释下?谢谢

论坛徽章:
0
12 [报告]
发表于 2007-10-12 13:32 |只看该作者
[root@gw bin13:37]#arch
x86_64

论坛徽章:
0
13 [报告]
发表于 2007-10-12 14:37 |只看该作者
哪位能解释下WORD_BIT 和LONG_BIT的问题。谢谢

论坛徽章:
0
14 [报告]
发表于 2007-10-12 14:54 |只看该作者
word一般就是一个机器字长。最自然的就是机器的“基本型”- int。
32位模型下,一般是ILP32,就是说,int,long,pointer都32位长。
64位模型下,一般是LP64,就是说,long,pointer是64位。int可能还是32位,也可能是64。

论坛徽章:
0
15 [报告]
发表于 2007-10-12 15:31 |只看该作者
原帖由 hohoxu_hao115 于 2007-10-12 09:48 发表
如果64位机上安装了32位系统,以上方法有效吗?
目前我知道的一个方法是运行命令x86info,看cpu是否支持x86-64指令。

有效,记得当时在Xeon上装32的RHAS得到的是32bit。 装64的RHAS得到的是64bit
x86info不是每个系统都自带的,至少对linux来说.但file应该有的

论坛徽章:
0
16 [报告]
发表于 2007-10-12 15:38 |只看该作者
原帖由 ivhb 于 2007-10-12 14:54 发表
word一般就是一个机器字长。最自然的就是机器的“基本型”- int。
32位模型下,一般是ILP32,就是说,int,long,pointer都32位长。
64位模型下,一般是LP64,就是说,long,pointer是64位。int可能还是32位, ...

to ivhb
也就是说int能反应其"本质" .Xeon不是真正的64位.所以int是32的,即使OS是64的.
这也就是说程序移植上不太赞成用int的一个原因吧?不知这样理解正确么?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
17 [报告]
发表于 2007-10-12 15:40 |只看该作者
原帖由 ivhb 于 2007-10-12 14:54 发表
word一般就是一个机器字长。最自然的就是机器的“基本型”- int。
32位模型下,一般是ILP32,就是说,int,long,pointer都32位长。
64位模型下,一般是LP64,就是说,long,pointer是64位。int可能还是32位, ...

学习~~

论坛徽章:
0
18 [报告]
发表于 2007-10-12 15:46 |只看该作者
原帖由 linewer 于 2007年10月12日 15:31 发表

有效,记得当时在Xeon上装32的RHAS得到的是32bit。 装64的RHAS得到的是64bit
x86info不是每个系统都自带的,至少对linux来说.但file应该有的


机器 != 系统

论坛徽章:
0
19 [报告]
发表于 2007-10-12 15:56 |只看该作者
原帖由 hohoxu_hao115 于 2007-10-12 15:46 发表


机器 != 系统

机器 当然!= 系统
可能是我表达不是很清楚:
Xeon也是虚拟的64位,并非真正的64位. 用64位和32位的OS可能反应在Xeon上就是32 WORD_BIT
LONG一个是64一个是32
对于Itanium或许WORD_BIT应该是64吧(猜的!)
哪位顺便告诉我怎么结贴给分?谢谢

论坛徽章:
0
20 [报告]
发表于 2007-10-13 06:30 |只看该作者
有些疑惑了,好像OS和机器是分开算的,我这里10台Sun Fire V440

测试结果都如下:

  1. root@ASServer # uname -a
  2. SunOS ASServer 5.8 Generic_117350-02 sun4u sparc SUNW,Sun-Fire-V440
  3. root@ASServer # isalist -v
  4. sparcv9+vis2 sparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc
  5. root@ASServer # isainfo -v
  6. 64-bit sparcv9 applications
  7. 32-bit sparc applications
  8. root@ASServer # isainfo -b
  9. 64
  10. root@ASServer # file /bin/ls
  11. /bin/ls:        ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
  12. root@ASServer # file /usr/ucb/echo
  13. /usr/ucb/echo:  ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP