架构 – 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位操作要慢很多。 它是内置处理器function(模拟为64位)还是依赖于软件? 什么时候32位处理器运行64位操作是否有意义?

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

您的特定CPU可以处理i386或i686构建的软件包。 有许多方法可以validation您的体系结构和操作系统首选项。

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

使用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位应用程序是一件轻而易举的事。

在此处输入图像描述
⠀夏日的微风

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

它的意思是:

 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