+ -
当前位置:首页 → 问答吧 → 【新手指南】x86, i386和i686的区别

【新手指南】x86, i386和i686的区别

时间:2009-12-23

来源:互联网

x86代表无任何优化的兼容所有IA32的架构。因为IA32架构的最低CPU类型是i386,所以x86同等于i386。

换句话说,i686是为IA32之Pentium Pro以上架构优化的。i686的代码不能运行于i586或更老的CPU。

Ubuntu是基于i386也就是x86的发布版本;Archlinux是基于i686的发布版本。关于他们之间的性能比较,可以参考一下专业网站的测评:

http://www.phoronix.com/scan.php?pag...nchmarks&num=1

作者: MACHINE   发布时间: 2009-12-23

如果和同样用上了ext4的ubuntu 9.10比较可能更公平点。
不过实际性能差别基本都不超过10%,大部分才百分之几,如果说能感觉到明显差别估计都是心理因素了。

作者: zlowly   发布时间: 2009-12-23

兄弟,还有一个x86-64呢,是新的for 64bit cpu的,amd k8,intel core2才能装的,当然也包括部分奔四,x86-64的优化比i686更多的。

作者: yafeng   发布时间: 2009-12-23

你咋知道标记为 i386 就代表没有做过任何优化?不要想当然了。

作者: AutoXBC   发布时间: 2009-12-23

引用:
作者: AutoXBC
你咋知道标记为 i386 就代表没有做过任何优化?不要想当然了。
i386有啥特殊指令是i486/586/686/x86-64没有的?


http://gcc.gnu.org/onlinedocs/gcc-4....002d64-Options


另外,论坛上的发表其实都是个人意见和参考,给一个线索而已。至于线索是否真实,是否需要额外的鉴别也是读者的兴趣。不然的话,任何人发言前都要写个免责协议,这就没有必要了。

作者: MACHINE   发布时间: 2009-12-23

引用:
作者: MACHINE
x86代表无任何优化的兼容所有IA32的架构。因为IA32架构的最低CPU类型是i386,所以x86同等于i386。
x86 是一个同族CPU泛指的概念,并不独指 i386。所以,x86并不等同于i386。他们是两个不同的概念域。

i386狭义的情况是指386架构,但是事实上在使用中往往并非如此,例如 ubuntu 标注自己的 32 位版本为 i386,但实际上,它编译的内核是 generic,而这个 generic 在 不同版本的 gcc 中具有不同含义,例如在 ubuntu 9.10 所带的 gcc 4.4.1 中, generic 指的就是 i686。

换句话说,事实上有些发行版声称的 i386,实际编译用的是 i686 指令。

虽然有很多发行版宣称了 i386,但目前几乎没有见到还有发行版实际真的是用 i386 指令编译的,最低也是 i586 级别。

——更多的发行版使用了缺省的编译,而由于 generic 的含义现在是 i686,所以大多数的主流发行版的编译参数实际上就是 i686。跟 arch 没有区别。

arch 按照 i686 编译的优势,仅仅在以前才能体现,现在已经没有了,因为以前 gcc 的 generic 缺省参数曾经是指向 i586 的。

作者: poet   发布时间: 2009-12-23

引用:
作者: poet
x86 是一个同族CPU泛指的概念,并不独指 i386。所以,x86并不等同于i386。他们是两个不同的概念域。

i386狭义的情况是指386架构,但是事实上在使用中往往并非如此,例如 ubuntu 标注自己的 32 位版本为 i386,但实际上,它编译的内核是 generic,而这个 generic 在 不同版本的 gcc 中具有不同含义,例如在 ubuntu 9.10 所带的 gcc 4.4.1 中, generic 指的就是 i686。

换句话说,事实上有些发行版声称的 i386,实际编译用的是 i686 指令。

虽然有很多发行版宣称了 i386,但目前几乎没有见到还有发行版实际真的是用 i386 指令编译的,最低也是 i586 级别。

——更多的发行版使用了缺省的编译,而由于 generic 的含义现在是 i686,所以大多数的主流发行版的编译参数实际上就是 i686。跟 arch 没有区别。

arch 按照 i686 编译的优势,仅仅在以前才能体现,现在已经没有了,因为以前 gcc 的 generic 缺省参数曾经是指向 i586 的。

进入以下每个链接,比较“Processor Architecture”那一行:
http://distrowatch.com/table.php?distribution=ubuntu
http://distrowatch.com/table.php?distribution=fedora
http://distrowatch.com/table.php?distribution=mint
http://distrowatch.com/table.php?distribution=suse
http://distrowatch.com/table.php?distribution=mandriva
http://distrowatch.com/table.php?distribution=debian
http://distrowatch.com/table.php?distribution=arch

作者: MACHINE   发布时间: 2009-12-23

看到 386 的标示就说明按照最低性能编译的?如果 generic 还不够明确的话,明白无误的告诉你 ubuntu 的宗主 debian 的缺省内核就命名为 linux-image-2.6-686,486 仅仅是为了兼容保留的可选项。

http://packages.debian.org/search?su...inux-image-2.6

作者: AutoXBC   发布时间: 2009-12-23

引用:
作者: AutoXBC
看到 386 的标示就说明按照最低性能编译的?如果 generic 还不够明确的话,明白无误的告诉你 ubuntu 的宗主 debian 的缺省内核就命名为 linux-image-2.6-686,486 仅仅是为了兼容保留的可选项。

http://packages.debian.org/search?su...inux-image-2.6
我可没说过是最低性能编译。我所说的i386/i486/i686/x86-64是指架构,linux-image后面跟的686是指在内核选项里的CPU型号,不信你看你链接的网页里还有标示K7的呢,K7却是属于i686架构的。编译仍然是i386的,正如你给的链接里所显示。不然http://distrowatch.com/table.php?distribution=debian里也不会显示架构是i386的。我说的不对么?

作者: MACHINE   发布时间: 2009-12-23

k7 确实是 i686 的,所以 linux-image-2.6-k7 就是个过渡包,本身并不单独存在,你再多点击一下就知道了。
http://packages.debian.org/lenny/linux-image-2.6-k7

debian 说我能高能低,到你耳朵里就变成了只能低,这多出一门手艺还压低了身份,真够讽刺的。

作者: AutoXBC   发布时间: 2009-12-23

引用:
作者: AutoXBC
k7 确实是 i686 的,所以 linux-image-2.6-k7 就是个过渡包,本身并不单独存在,你再多点击一下就知道了。
http://packages.debian.org/lenny/linux-image-2.6-k7

debian 说我能高能低,到你耳朵里就变成了只能低,这多出一门手艺还压低了身份,真够讽刺的。
我从来没有说过debian很低。

作者: MACHINE   发布时间: 2009-12-23