Яка різниця між пакетами i686 та x86_64?


34

У мене є машина з glibc i686 і x86_64, і дуже дратує проблему з glibc.

Чи нормально мати на одному комп’ютері дві бібліотеки з однаковим іменем? Як я можу знати, яка бібліотека виконується?

Донедавна я вважав, що x86_64 - це i686. Ну, мабуть, помиляюся, але чому?

    [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
Прочитайте цю статтю WikiPedia на x86 та цю статтю WikiPedia на x86_64 . Щоб дізнатися, що ви використовуєте, використовуйте uname -mтаcat /proc/cpuinfo
eyoung100

1
У системі RH5.9 x86_64 я бачу як glibc для i686, так і x86_64.
Раза

Відповіді:


25

Технічно i686 - це фактично 32-розрядний набір інструкцій (частина сімейної лінії x86), тоді як x86_64 - це 64-розрядний набір інструкцій (також званий amd64).

Згідно звуку, у вас 64-розрядна машина, яка має 32-бітні бібліотеки для зворотної сумісності. Це повинно бути абсолютно добре.


2

Якщо ви викопаєте i686 у Вікіпедії, Вікіпедія підкаже вам підказки, що мікроархітектура i686 розглядається як розширення x86.

Взагалі всі архітектури x86 вважаються подібними, а архітектура x86_64 (а може бути, amd64) розглядається в іншій групі мікроархітектур.


3
Але швидка і брудна відповідь буде "тому, що i686 є 32-бітовою субмікроархітектурою x86, а x86_64 (або amd64) - 64-бітовий мікроархітет)".
41754,

2
Гм ... виправте мене, якщо я тут помиляюся, але це виглядає так, що ваш коментар отримав ... Unix-Ninja'ed.
ТЕД


2

Пакети i686 призначені для виконання на 686-сумісних процесорах, що включає всі 32-бітні процесори Intel x86 до Pentium 4 та ін., а також процесори від AMD ( AMD K6 ) та інших постачальників, які роблять сумісні 32- трохи фішок.

Для отримання додаткової інформації:

Пакети x86_64 призначені для виконання на процесорах, сумісних із 64-розрядною платформою AMD64, включаючи AMD Athlon 64, AMD Opteron та пов'язані з ними процесорні сімейства AMD та процесори на базі Intel 64 .

Ці 64-бітні процесори повністю сумісні з їх 32-бітовими попередниками, тому якщо у вас є процесор AMD64 або Intel 64, вирішувати, чи встановити 64-бітні пакети x86_64 або 32-бітні пакети i686. Щоб отримати найвищий рівень продуктивності у вашій системі, ви можете використовувати 64-розрядні пакети дистрибутива x86_64.

Довідка:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.