Qual é a diferença entre os pacotes i686 e x86_64?


34

Eu tenho uma máquina com glibc i686 e x86_64 e um problema muito irritante com glibc.

É normal ter duas bibliotecas com o mesmo nome instaladas em um computador? Como posso saber qual biblioteca é executada?

Até recentemente, eu acreditava que x86_64 era i686. Bem, devo estar enganado, mas 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.

2
Leia este artigo da WikiPedia no x86 e este artigo do WikiPedia no x86_64 . Para descobrir o que você usa, use uname -mecat /proc/cpuinfo
eyoung100

11
No sistema RH5.9 x86_64, vejo glibc para i686 e x86_64.
Raza

Respostas:


25

Tecnicamente, o i686 é realmente um conjunto de instruções de 32 bits (parte da linha da família x86), enquanto x86_64 é um conjunto de instruções de 64 bits (também conhecido como amd64).

Pelo que parece, você tem uma máquina de 64 bits com bibliotecas de 32 bits para compatibilidade com versões anteriores. Isso deve ser totalmente bom.


2

Se você digitar i686 na Wikipedia, a Wikipedia informará pistas de que a microarquitetura i686 é considerada uma extensão x86.

Em geral, todas as arquiteturas x86 são consideradas semelhantes e a arquitetura x86_64 (ou talvez amd64) é considerada em outro grupo de microarquiteturas.


3
Mas a resposta rápida e suja seria "porque i686 é um 32bit x86 submicroarchitecture e x86_64 (ou amd64) é um 64 bit microarchitecure).
41754

2
Umm ... me corrija se eu estiver errado aqui, mas parece que seu comentário foi ... Unix-Ninja'ed.
TED


2

Os pacotes i686 devem ser executados em processadores compatíveis com 686, que incluem todos os processadores Intel de 32 bits x86, inclusive o Pentium 4 , etc., bem como processadores da AMD ( AMD K6 ) e outros fornecedores que tornam compatíveis 32 chips de bits.

Para maiores informações:

Os pacotes x86_64 devem ser executados em processadores compatíveis com a plataforma AMD64 de 64 bits, incluindo as famílias AMD Athlon 64, AMD Opteron e AMD relacionadas e os processadores baseados em Intel 64 .

Esses processadores de 64 bits são totalmente compatíveis com os seus antecessores de 32 bits; portanto, se você possui um processador AMD64 ou Intel 64, é sua responsabilidade instalar os pacotes x86_64 de 64 bits ou os pacotes i686 de 32 bits. Para obter o nível mais alto de desempenho do seu sistema, convém usar os pacotes de distribuição x86_64 de 64 bits.

Referência:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.