Jaka jest różnica między pakietami i686 i x86_64?

34

Mam maszynę zarówno z glibc i686, jak i x86_64, i bardzo denerwujący problem z glibc.

Czy to normalne, że dwie biblioteki o tej samej nazwie są zainstalowane na jednym komputerze? Skąd mam wiedzieć, która biblioteka jest wykonywana?

Do niedawna uważałem, że x86_64 to i686. Cóż, muszę się mylić, ale dlaczego?

    [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 Belgium
źródło
2
Przeczytaj ten artykuł WikiPedia na x86 i ten artykuł WikiPedia na x86_64 . Aby dowiedzieć się, czego używasz, użyj uname -micat /proc/cpuinfo
eyoung100
1
W systemie RH5.9 x86_64 widzę zarówno glibc dla i686, jak i x86_64.
Raza

Odpowiedzi:

25

Technicznie rzecz biorąc, i686 jest w rzeczywistości 32-bitowym zestawem instrukcji (część linii rodziny x86), podczas gdy x86_64 jest 64-bitowym zestawem instrukcji (zwanym również amd64).

Z brzmienia tego wynika, że ​​masz 64-bitową maszynę, która ma 32-bitowe biblioteki dla kompatybilności wstecznej. To powinno być w porządku.

Unix-Ninja
źródło
2

Jeśli kopiesz i686 w Wikipedii, Wikipedia podpowie ci, że mikroarchitektura i686 jest uważana za rozszerzenie x86.

Zasadniczo wszystkie architektury x86 są uważane za podobne, a architektura x86_64 (lub może amd64) jest rozważana w innej grupie mikroarchitektur.

41754
źródło
3
Ale szybka i brudna odpowiedź brzmiałaby „ponieważ i686 jest 32-bitową submikroarchitekturą x86, a x86_64 (lub amd64) jest 64-bitową mikroarchitekurą).
41754
2
Umm ... poprawcie mnie, jeśli się tu mylę, ale wygląda na to, że wasz komentarz został ... Unix-Ninja'ed.
TED,
2

Pakiety i686 są przeznaczone do uruchamiania na procesorach zgodnych z 686, które obejmują wszystkie 32-bitowe procesory Intel x86 aż do Pentium 4 włącznie itp., a także procesory AMD ( AMD K6 ) i innych dostawców, którzy tworzą kompatybilne 32- bitowe żetony.

Po więcej informacji:

Pakiety x86_64 są przeznaczone do uruchamiania na procesorach zgodnych z 64-bitową platformą AMD64, w tym AMD Athlon 64, AMD Opteron i pokrewnymi rodzinami procesorów AMD oraz procesorach opartych na Intel 64 .

Te 64-bitowe procesory są w pełni kompatybilne wstecz z ich 32-bitowymi poprzednikami, więc jeśli masz procesor AMD64 lub Intel 64, od Ciebie zależy, czy zainstalować 64-bitowe pakiety x86_64, czy 32-bitowe pakiety i686. Aby uzyskać najwyższy poziom wydajności z systemu, możesz użyć 64-bitowych pakietów dystrybucyjnych x86_64.

Odniesienie :

Fin
źródło