В чем разница между пакетами 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.
TED


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.