LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5181|回复: 10

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

[复制链接]
发表于 2009-12-23 09:56:48 | 显示全部楼层 |阅读模式
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 ... enchmarks&num=1
发表于 2009-12-23 10:55:16 | 显示全部楼层
如果和同样用上了ext4的ubuntu 9.10比较可能更公平点。
不过实际性能差别基本都不超过10%,大部分才百分之几,如果说能感觉到明显差别估计都是心理因素了。
回复 支持 反对

使用道具 举报

发表于 2009-12-23 11:03:15 | 显示全部楼层
兄弟,还有一个x86-64呢,是新的for 64bit cpu的,amd k8,intel core2才能装的,当然也包括部分奔四,x86-64的优化比i686更多的。
回复 支持 反对

使用道具 举报

发表于 2009-12-23 11:14:53 | 显示全部楼层
你咋知道标记为 i386 就代表没有做过任何优化?不要想当然了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-23 11:49:09 | 显示全部楼层
Post by AutoXBC;2058418
你咋知道标记为 i386 就代表没有做过任何优化?不要想当然了。


i386有啥特殊指令是i486/586/686/x86-64没有的?


http://gcc.gnu.org/onlinedocs/gc ... -x86_002d64-Options


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

使用道具 举报

发表于 2009-12-23 12:36:41 | 显示全部楼层
Post by MACHINE;2058386
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 的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-23 13:53:35 | 显示全部楼层
Post by poet;2058445
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
回复 支持 反对

使用道具 举报

发表于 2009-12-23 14:07:39 | 显示全部楼层
看到 386 的标示就说明按照最低性能编译的?如果 generic 还不够明确的话,明白无误的告诉你 ubuntu 的宗主 debian 的缺省内核就命名为 linux-image-2.6-686,486 仅仅是为了兼容保留的可选项。

http://packages.debian.org/searc ... rds=linux-image-2.6
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-23 15:03:12 | 显示全部楼层
Post by AutoXBC;2058473
看到 386 的标示就说明按照最低性能编译的?如果 generic 还不够明确的话,明白无误的告诉你 ubuntu 的宗主 debian 的缺省内核就命名为 linux-image-2.6-686,486 仅仅是为了兼容保留的可选项。

http://packages.debian.org/searc ... rds=linux-image-2.6

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

使用道具 举报

发表于 2009-12-23 16:16:24 | 显示全部楼层
k7 确实是 i686 的,所以 linux-image-2.6-k7 就是个过渡包,本身并不单独存在,你再多点击一下就知道了。
http://packages.debian.org/lenny/linux-image-2.6-k7

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表