(1) 在Linux下怎样决断你的CPU是32位还是64位
命令:
#grep flags /proc/cpuinfo
输出:
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 nx lm
如果找到lm, 则说明你的CPU是64位的. lm是long mode的意思.
64位CPU - Long Mode
32位CPU - Protected Mode
16位CPU - Real Mode
(2) Linux下判断你的和操作系统是32还是 64位
命令:
#uname -a
输出1:
Linux test-1 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:12 EDT 2008 i686
i386, i686 说 明你是32位的内核, 跑的是32位的系统.
输出2:
Linux test-2 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:15 EDT 2008 x86_64
x86_64则说明你是64位内核, 跑的是64位的系统.
如果你cpuinfo的输出有lm标志, 而uname -a命令的输出是i386或 i686 , 说明你是64位的CPU跑的32位的系统.
64位系统可以通过安装32位运行库来支持32位的程序,反之则不可。
查看linux是32位还 是64位
# uname -a 查看系统是多少位
# arch 查看系统是 多少位
# file /bin/cat 查看可执行文件是 多少位
查看cpu是 多 少位
more /proc/cpuinfo
grep flags /proc/cpuinfo
如果找到lm, 则说明你的CPU是64位的. lm是long mode的意思.
64位CPU - Long Mode
32位CPU - Protected Mode
16位CPU - Real Mode
(3) Linux下判断文件是32还是 64位
命令:
file /bin/ls
输出:
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped