Qual è la differenza tra i pacchetti i686 e x86_64?


34

Ho una macchina con glibc i686 e x86_64 e un problema molto fastidioso con glibc.

È normale avere due librerie con lo stesso nome installate su un computer? Come posso sapere quale libreria viene eseguita?

Fino a poco tempo fa, credevo che x86_64 fosse i686. Bene, devo sbagliarmi, ma perché?

    [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
Leggi questo articolo di WikiPedia su x86 e questo articolo di WikiPedia su x86_64 . Per scoprire cosa usi, usa uname -mecat /proc/cpuinfo
eyoung100

1
Sul sistema RH5.9 x86_64, vedo sia glibc per i686 che x86_64.
Raza,

Risposte:


25

Tecnicamente, i686 è in realtà un set di istruzioni a 32 bit (parte della linea della famiglia x86), mentre x86_64 è un set di istruzioni a 64 bit (noto anche come amd64).

A quanto pare, hai una macchina a 64 bit che ha librerie a 32 bit per la compatibilità con le versioni precedenti. Questo dovrebbe essere totalmente a posto.


2

Se scavi i686 in Wikipedia, Wikipedia ti dirà che la microarchitettura i686 è considerata un'estensione x86.

In generale, tutte le architetture x86 sono considerate simili e l'architettura x86_64 (o forse amd64) è considerata in un altro gruppo di microarchitetture.


3
Ma la risposta rapida e sporca sarebbe "perché i686 è una submicroarchitettura x86 a 32 bit e x86_64 (o amd64) è una microarchitettura a 64 bit).
41754

2
Umm ... correggimi se sbaglio qui, ma sembra che il tuo commento sia arrivato ... Unix-Ninja.
TED


2

I pacchetti i686 devono essere eseguiti su processori compatibili 686, che include tutti i processori Intel x86 a 32 bit fino al Pentium 4 incluso , ecc., nonché processori AMD ( AMD K6 ) e altri produttori che rendono compatibile 32- bit chips.

Per maggiori informazioni:

I pacchetti x86_64 devono essere eseguiti su processori compatibili con la piattaforma AMD64 a 64 bit, inclusi AMD Athlon 64, AMD Opteron e le relative famiglie di processori AMD e i processori basati su Intel 64 .

Questi processori a 64 bit sono completamente retrocompatibili con i loro predecessori a 32 bit, quindi se si dispone di un processore AMD64 o Intel 64, sta a te decidere se installare i pacchetti x86_64 a 64 bit o i pacchetti i686 a 32 bit. Per ottenere il massimo livello di prestazioni dal tuo sistema, potresti voler utilizzare i pacchetti di distribuzione x86_64 a 64 bit.

Riferimento:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.