在Ubuntu中,'i686'的意思是什么?

为了检查我是否正在使用32位或64位的Ubuntu。我查看了如何检查我是否有32位或64位的操作系统?并找到了这个答案:uname -a。如果显示为i386,则是32位;如果显示为amd64,则是64位,但我得到了这个结果:
Linux mukund-ThinkPad-Edge-E431 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux

这个 i686 是什么?是32位还是64位 - 我认为它是32位的,因为我在其中安装的所有Debian软件包都是32位的,所以请问有人能给出详细的解释吗?

1这个链接回答了你的问题:https://superuser.com/a/238131/18500,而这个链接也是如此:https://serverfault.com/a/188203/26514。 - Engineer2021
6个回答

i686意味着你正在使用32位操作系统。

Go into the terminal and type in.

uname -a

If your results are similar to the one below, then yours is 64-bit; otherwise, it is 32-bit.

Linux ubuntu-tm 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux

If you have the x86_64 then your machine is 64-bit.

If your results are similar to this one; then you have 32-bit.

Linux Server 2.6.15-23-386 #1 SMP Tue Mar 1 13:49:40 UTC 2011 i686 GNU/Linux

Notice the i686 in the code, that means your machine is 32-bit.

UPDATE:

Type in the following in the terminal;

uname -m

It will give you either x86_64, which is 64-bit, or something else, which is 32-bit.

礼貌: https://superuser.com/a/260999/130574 (这是那个答案的副本)

也被称为P6微架构,它是第六代英特尔x86微架构,由Pentium Pro微处理器实现,于1995年11月推出。i686代码旨在在与32位英特尔x86平台兼容的处理器上执行,其中包括所有英特尔32位x86处理器,包括Pentium 4等,以及来自AMD和其他制造兼容32位芯片的供应商的处理器。

礼貌:维基百科和这个链接

简而言之:

这只是意味着您正在运行支持与i686处理器架构兼容的32位内核。

N.B:

这并不意味着你的系统只能运行32位内核,它只是表示你目前正在运行基于32位内核的操作系统。

i686是英特尔P6微架构的简称,它是由奔腾Pro1引入的。

简而言之,它是32位架构。8086和80286甚至是16位处理器。80386是英特尔第一款32位处理器(引入了保护模式工作,除了实模式)。80586是著名的Pentium™

i686广泛用于描述与奔腾Pro/II兼容并具有其指令集的32位P6处理器架构。例如,AMD K7(Duron™和Athlon™)都是i686。


6英特尔从未生产过编号为80686的处理器(奔腾II的编号是80522/3/4)。 - Alistair Buxton
3i686指的是从奔腾Pro开始的P6架构,而不是奔腾II。 - nobody

正如其他海报所说,您的内核是32位的。然而,“i686”的含义还需要进一步解释。
在编译Linux内核时(这是终端用户通常不需要做的事情 - Ubuntu背后的好人们提供了已经编译好的内核),有各种选项可以调整。一个重要的选项是CPU特性支持。
所有x86 CPU都与原始的Intel 80386兼容(简称为i386),因此如果您想要一个与所有x86 CPU兼容的内核,您将编译一个i386内核。
然而,现代CPU具有许多附加功能(集成浮点单元,MMX等),如果配置正确,Linux可以使用这些功能。作为向后兼容和性能之间的平衡,Ubuntu的内核编译时支持在Intel Pentium II上可用的功能,这就是为什么内核显示为i686的原因。
这也在一定程度上解释了为什么针对64位处理器编译的应用程序有时会更快。i686首次出现于1997年,现代处理器具有许多在i686上不可用的功能(如SSE、额外寄存器等),但应用程序需要编译以支持这些功能,这可能会破坏与旧系统的兼容性。相比之下,x86_64 CPU首次出现于2003年,因此应用程序可以编译以支持在1997年至2003年间引入的某些功能,而无需担心兼容性问题。

2对于“i686”并没有一个标准的定义。它被用来描述从P6架构(包括无法运行Ubuntu的CPU)到Ubuntu所称的“Pentium II及以上”,再到其他发行版所称的“Atom/Core2及以上”的各种情况。 - Alistair Buxton
我喜欢你说“这也部分解释了为什么针对64位处理器编译的应用程序有时更快。”第一次运行完整的64位系统时,我被速度的提升震撼了。然而,当你运行混合的32位/64位系统时,你将看不到这种加速效果。 - Zane
2CPU也有CPUID指令,允许CPU报告功能标志。您可以在/proc/cpuinfo中查看这些标志。因此,即使软件是为i686编译的,它可能会检查这些标志以查看是否支持更多当前的功能。 - Zan Lynx
感谢关于特性标志和CPU命名的信息。我必须承认,自从我最后一次编译自己的内核(可能是在2.0系列的某个地方),已经过了很长时间了,而且我想Linux在处理CPU特性方面肯定变得更加聪明了。如果您认为演示可以改进,请尽量提出任何您能想到的修改建议。 - James_pic
如果你的系统内存有限,并且没有进行大量的数值处理,那么使用32位系统可能会获得更好的性能,因为各种数据可以被更紧凑地存储,而且在使用磁盘IO之前,系统可以多做一些操作。不过,在没有进行测试之前,请不要对此做出太多假设。 - mc0e
@mc0e 所以我说过,为64位处理器编译的应用程序有时候会更快。正如你所指出的,这取决于许多因素。 - James_pic


有一个问题,我在UE 3.8中找不到系统设置,我刚刚安装了它,无法在系统/管理或系统/首选项中看到系统设置,为什么呢? - Mukund
1如果你找不到它,你可以从终端开始:gnome-control-center - SPRBRN

i686广泛用于描述与Pentium Pro/II兼容且具有其指令集的32位P6处理器架构。

从我所了解的情况来看,你也可以使用 lscpu 命令来查找你的架构,并且不受内核编译版本的限制。