架构 - 32 位处理 64 位指令

架构 - 32 位处理 64 位指令
tomasz@tomasz-lenovo-ideapad-Y530:~$ lscpu
Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              6
CPU MHz:               2000.000
BogoMIPS:              4000.12
Cache L1d:             32K
Cache L1i:             32K
Cache L2:              3072K

我可以看到我的架构是 32 位 (i686)。但 CPU 操作模式是 32 位和 64 位。问题是:怎么回事?如何处理 32 位处理器执行 64 位操作?我猜它比原生 32 位操作慢很多。它是内置处理器功能(模拟 64 位)还是依赖于软件?32 位处理器何时运行 64 位操作才有意义?

答案1

使用该lscpu命令检查您的计算机是否支持多种CPU操作模式(通常是32位或64位模式)。

从终端运行:

lscpu | grep op-mode

64 位处理器上的示例输出:

user@computer1:~$ lscpu | grep op-mode
CPU op-mode(s): 32-bit, 64-bit

32 位处理器上的示例输出:

user@computer2$ lscpu | grep op-mode
CPU op-mode(s): 32-bit

第一个例子中的电脑可以安装 Ubuntu 32 位或 Ubuntu 64 位。第二个例子中的电脑只能安装 Ubuntu 32 位。问题中的电脑可以安装 Ubuntu 32 位或 Ubuntu 64 位。

32 位应用程序可以在 32 位或 64 位操作系统上运行。64 位操作系统只能在 64 位处理器上运行。64 位应用程序可以在 64 位操作系统上运行,通过进行一些繁重的工作,也可以在 32 位操作系统上运行一些 64 位应用程序。我说的“繁重的工作”是指您需要安装 64 位内核1并且还会执行其他令人不快的事情,具体取决于您尝试安装的 64 位应用程序。相比之下,在 64 位操作系统中安装 32 位应用程序轻而易举。

在此处输入图片描述 夏天的微风

1https://unix.stackexchange.com/questions/134391/64-bit-kernel-but-all-32-bit-elf-executable-running-processes-how-is-this/134394#134394

答案2

lscpu告诉您您的架构是 i686(Intel 32 位 CPU),并且您的 CPU 支持 32 位和 64 位操作模式。您将无法安装 x64 构建的应用程序,因为它们是专门为 x64 架构构建的。

您的特定 CPU 可以处理 i386 或 i686 内置软件包。有多种方法可以验证您的架构和操作系统偏好。

试试看uname -m。它会显示 i686,这意味着你的 CPU 支持 32 位。

答案3

它的意思是:

Architecture: i686              # <-- your kernel is 32 bit (you are using 32 bit Ubuntu)
CPU op-mode(s): 32-bit, 64-bit  # <-- your cpu can handle 32 or 64 bit instructions

相关内容