Quelle est la différence entre les packages i686 et x86_64?


34

J'ai une machine avec à la fois glibc i686 et x86_64, et un problème très gênant avec glibc.

Est-il normal que deux bibliothèques du même nom soient installées sur un ordinateur? Comment puis-je savoir quelle bibliothèque est exécutée?

Jusqu'à récemment, je croyais que x86_64 était i686. Eh bien, je dois me tromper mais pourquoi?

    [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
Lisez cet article de WikiPedia sur x86 et Cet article de WikiPedia sur x86_64 . Pour savoir ce que vous utilisez, l' utilisation uname -metcat /proc/cpuinfo
eyoung100

1
Sur le système RH5.9 x86_64, je vois à la fois la glibc pour i686 et x86_64.
Raza

Réponses:


25

Techniquement, i686 est en réalité un jeu d'instructions de 32 bits (partie de la ligne de la famille x86), tandis que x86_64 est un jeu d'instructions de 64 bits (également appelé amd64).

À partir de là, vous avez une machine 64 bits dotée de bibliothèques 32 bits pour la compatibilité descendante. Cela devrait être tout à fait bien.


2

Si vous creusez i686 dans Wikipedia, Wikipedia vous indiquera que la microarchitecture i686 est considérée comme une extension x86.

En général, toutes les architectures x86 sont considérées comme similaires et l'architecture x86_64 (ou peut-être amd64) est considérée dans un autre groupe de microarchitectures.


3
Mais la réponse rapide et sale serait "parce que i686 est une sous-architecture de 32 bits x86, et x86_64 (ou amd64) est une microarchitecure de 64 bits).
41754

2
Umm ... corrigez-moi si je me trompe, mais il semblerait que votre commentaire ait ... Unix-Ninja'ed.
TED


2

Les packages i686 sont destinés à être exécutés sur des processeurs compatibles 686, ce qui inclut tous les processeurs Intel 32 bits x86 jusqu'au Pentium 4 inclus. , etc., ainsi que les processeurs d'AMD ( AMD K6 ) et d' autres fournisseurs qui font compatibles 32- morceaux de bits.

Pour plus d'informations:

Les packages x86_64 sont destinés à être exécutés sur des processeurs compatibles avec la plate-forme AMD64 64 bits, y compris AMD Athlon 64, AMD Opteron et les familles de processeurs AMD connexes. processeurs Intel 64 .

Ces processeurs 64 bits sont totalement compatibles avec leurs prédécesseurs 32 bits, donc si vous disposez d'un processeur AMD64 ou Intel 64, vous devez installer les packages x86_64 64 bits ou i686 32 bits. Pour tirer le meilleur parti des performances de votre système, vous pouvez utiliser les packages de distribution 64 bits x86_64.

Référence :

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.