我运行的是 32 位还是 64 位?

我运行的是 32 位还是 64 位?

我知道这个问题已经被问过很多次了,但我的系统似乎自相矛盾……

回答以下问题问题,我已经运行了以下内容:

$ uname -a
Linux manaha 3.13.7-x86_64-linode38 #1 SMP Tue Mar 25 12:59:48 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
$ file /sbin/init
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xc0d86a25a7abb14cad4a65a1f7d03605bcbd41f6, stripped

因此,虽然uname似乎建议使用 64 位,但/sbin/init建议使用 32 位。这是怎么回事?

答案1

在计算中,可执行和可链接格式 (ELF) 是可执行文件、目标代码、共享库和核心转储的通用标准文件格式。您的问题中将/sbin/init: ELF 32-bit LSB shared objectELF 标识为共享库中 32 位共享对象的格式。您的操作系统是 64 位操作系统,其中某处有一个 32 位共享对象。这并不矛盾。

答案2

uname 命令会告诉您有关系统的信息,而 file 命令则会告诉您有关文件的信息。因此,file 命令表示“init”是一个 32 位文件,而 uname 命令表示您有一台 64 位计算机。希望这对您有所帮助。
请尽快指出我所犯的任何错误,以防万一造成任何伤害。PS
,你读过你链接到的帖子的其他答案了吗?这个答案似乎是一种非常简单的方法来找出你的架构:https://askubuntu.com/a/65731/271517

相关内容