¿Cuál es la diferencia entre los paquetes i686 y x86_64?

34

Tengo una máquina con glibc i686 y x86_64, y un problema muy molesto con glibc.

¿Es normal tener dos bibliotecas del mismo nombre instaladas en una computadora? ¿Cómo puedo saber qué biblioteca se ejecuta?

Hasta hace poco, creía que x86_64 era i686. Bueno, debo estar equivocado, pero ¿por qué?

    [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.
MUY Bélgica
fuente
2
Lea este artículo de WikiPedia en x86 y este artículo de WikiPedia en x86_64 . Para saber lo que usa, use uname -mycat /proc/cpuinfo
eyoung100
1
En el sistema RH5.9 x86_64, veo tanto glibc para i686 como x86_64.
Raza

Respuestas:

25

Técnicamente, i686 es en realidad un conjunto de instrucciones de 32 bits (parte de la línea de familia x86), mientras que x86_64 es un conjunto de instrucciones de 64 bits (también denominado amd64).

Por lo que parece, tiene una máquina de 64 bits que tiene bibliotecas de 32 bits para compatibilidad con versiones anteriores. Eso debería estar totalmente bien.

Unix-Ninja
fuente
2

Si cavas i686 en Wikipedia, Wikipedia te dará pistas de que la microarquitectura i686 se considera una extensión x86.

En general, todas las arquitecturas x86 se consideran similares, y la arquitectura x86_64 (o tal vez amd64) se considera en otro grupo de microarquitecturas.

41754
fuente
3
Pero la respuesta rápida y sucia sería "porque i686 es una submicroarquitectura x86 de 32 bits, y x86_64 (o amd64) es una microarquitectura de 64 bits).
41754
2
Umm ... corrígeme si me equivoco aquí, pero parece que tu comentario ... Unix-Ninja'ed.
TED
2

Los paquetes i686 están diseñados para ejecutarse en procesadores compatibles con 686, que incluyen todos los procesadores Intel x86 de 32 bits hasta el Pentium 4 , etc. incluidos , así como procesadores de AMD ( AMD K6 ) y otros proveedores que hacen compatibles 32- papas fritas

Para más información:

Los paquetes x86_64 están diseñados para ejecutarse en procesadores compatibles con la plataforma AMD64 de 64 bits, incluidos los procesadores AMD Athlon 64, AMD Opteron y AMD relacionados, y los procesadores basados ​​en Intel 64 .

Estos procesadores de 64 bits son totalmente compatibles con sus predecesores de 32 bits, por lo que si tiene un procesador AMD64 o Intel 64, depende de usted si instala los paquetes x86_64 de 64 bits o los paquetes i686 de 32 bits. Para obtener el mayor nivel de rendimiento de su sistema, es posible que desee utilizar los paquetes de distribución x86_64 de 64 bits.

Referencia:

finlandés
fuente