i686 和 x86_64 软件包有什么区别?

i686 和 x86_64 软件包有什么区别?

我有一台同时具有 glibc i686 和 x86_64 的机器,并且有一个非常烦人的 glibc 问题。

一台计算机上安装两个同名的库正常吗?我如何知道执行的是哪个库?

直到最近,我还认为 x86_64 就是 i686。好吧,我一定是弄错了,但为什么呢?

    [root@machin ~]# yum info glibc
    Loaded plugins: rhnplugin, security
    This system is not registered with RHN.
    RHN support will be disabled.
    Excluding Packages in global exclude list
    Finished
    Installed Packages
    Name       : glibc
    Arch       : i686
    Version    : 2.5
    Release    : 42
    Size       : 12 M
    Repo       : installed
    Summary    : The GNU libc libraries.
    License    : LGPL
    Description: The glibc package contains standard libraries which are used by
               : multiple programs on the system. In order to save disk space and
               : memory, as well as to make upgrading easier, common system code is
               : kept in one place and shared between programs. This particular package
               : contains the most important sets of shared libraries: the standard C
               : library and the standard math library. Without these two libraries, a
               : Linux system will not function.

    Name       : glibc
    Arch       : x86_64
    Version    : 2.5
    Release    : 42
    Size       : 11 M
    Repo       : installed
    Summary    : The GNU libc libraries.
    License    : LGPL
    Description: The glibc package contains standard libraries which are used by
               : multiple programs on the system. In order to save disk space and
               : memory, as well as to make upgrading easier, common system code is
               : kept in one place and shared between programs. This particular package
               : contains the most important sets of shared libraries: the standard C
               : library and the standard math library. Without these two libraries, a
               : Linux system will not function.

    [root@machin ~]# yum info glibc-common
    Loaded plugins: rhnplugin, security
    This system is not registered with RHN.
    RHN support will be disabled.
    Excluding Packages in global exclude list
    Finished
    Installed Packages
    Name       : glibc-common
    Arch       : x86_64
    Version    : 2.5
    Release    : 42
    Size       : 64 M
    Repo       : installed
    Summary    : Common binaries and locale data for glibc
    License    : LGPL
    Description: The glibc-common package includes common binaries for the GNU libc
               : libraries, as well as national language (locale) support.

答案1

从技术上来说,i686 实际上是一个 32 位指令集(x86 系列的一部分),而 x86_64 是一个 64 位指令集(也称为 amd64)。

从表面上看,您拥有一台具有 32 位库以实现向后兼容的 64 位计算机。那应该完全没问题。

答案2

i686软件包旨在在 686 兼容处理器上执行,其中包括所有 Intel 32 位 x86 处理器奔腾4等以及 AMD 的处理器(AMD K6)和其他制造兼容 32 位芯片的供应商。

了解更多信息:

x86_64软件包旨在在与 AMD64 64 位平台兼容的处理器上执行,包括 AMD Athlon 64、AMD Opteron 和相关 AMD 处理器系列,以及英特尔64位基于处理器。

这些 64 位处理器完全向后兼容其 32 位前代处理器,因此,如果您有 AMD64 或 Intel 64 处理器,则由您决定是安装 64 位 x86_64 软件包还是 32 位 i686 软件包。为了获得系统的最高性能,您可能需要使用 64 位 x86_64 分发包。

参考 :

答案3

如果你在维基百科中挖掘 i686,维基百科会告诉你 i686 微架构被视为 x86 扩展的线索。

一般来说,所有 x86 架构都被认为是相似的,x86_64(或者可能是 amd64)架构被认为属于另一个微架构组。

答案4

回答您的问题:x86_64 与 i686 不同,但是 x86_64“包含”i686 功能。

i686 是指基于 32 位架构的 CPU 设计(参见https://en.wikipedia.org/wiki/32-bit_computing

x86_64 是指基于 64 位架构的 CPU 设计(请参阅https://en.wikipedia.org/wiki/64-bit_computing

本质上,i686 是 x86_64 的 32 位组件,代表 x86_64 名称的 x86 部分。 x86_64 是一种 64 位 CPU 架构,为了“向后兼容”而“包含”32 位功能。 (看https://en.wikipedia.org/wiki/X86-64

回顾Intel CPU的历史,很容易追踪i686等名称的起源。

大多数“个人计算机”(PC) 中当前 CPU 的前身 CPU 起源于第一个 Intel CPU 4004。在 20 世纪 70 年代有不同的型号,然后出现了 8086、8088、80186、80286、 80386、80486、80586(又名奔腾)等(参见:https://en.wikipedia.org/wiki/List_of_Intel_microprocessors

这些是英特尔为其 CPU 分配的名称。 x86中的x代表1、2、3等。

这是了解 i686 是什么以及它来自哪里的好方法,在 Wikipedia 上搜索以下项目;

i286,重定向到 80286 i386,重定向到 80386 i486,重定向到 80486 i586,重定向到 P5 / Pentium,Intel 此时停止使用 ix86 引用(请参阅此处了解原因:https://en.wikipedia.org/wiki/Pentium)i686,重定向到 P6 / Pentium Pro(该系列中最后一个主要的 32 位 CPU 设计,有点忽略 Pentium M 和其他一些) i786 以及其他链接提供 Intel Itanium CPU / P7 作为链接(该系列中的第一个 64 位 Intel CPU)

相关内容