在64位硬件上取消显示32位内核的输出



我没有这个配置,所以我想从你那里了解一下。

如果在64位硬件上使用32位Linux内核(例如Core 2 Duo, i3, i5, i7),那么uname -i, uname -muname -p的输出是什么?请粘贴到这里

三者中哪一个能明确地告诉我我的内核类型?

我计划在bash脚本中获取此或getconf LONG_BIT的输出,并确定是否仅为32位或32位和64位构建我的程序,使用CMake。

我觉得你的想法有问题。

我有一台PC, CPU是Intel(R) Core(TM)2 Duo CPU,所以硬件肯定支持64位,但我安装了32位Linux系统(RedHat Enterprise Linux Server 5.4, Tikanga)。以下是uname -i, uname -m, uname -p的输出:

[root@build-server-for-9K proc]# uname -i
i386
[root@build-server-for-9K proc]# uname -m
i686
[root@build-server-for-9K proc]# uname -p
i686
[root@build-server-for-9K proc]# getconf LONG_BIT
32

所有输出显示Linux内核是32位构建的。输出不显示硬件能力。

所以我认为无论是"getconf"还是"uname"都不能给你指导是构建32位内核还是64位内核。

但是/proc/cpuinfo可以给你CPU硬件能力的信息,比如它是否支持64位。

获得硬件能力后,您可以决定只构建32位或32位& 64位内核。

希望以上的解释能给你一些帮助。

我还附上了"cat/proc/cpuinfo"的部分结果:

model name      : Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz
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 nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm

最新更新