Linux amd64 что это

Обновлено: 03.07.2024

В чем разница между стандартной загрузкой i386 и загрузкой amd64 Ubuntu 11.04? В настоящее время я использую i386 на машине amd, лучше ли будет работать моя система с загрузкой amd64? (моя машина работала под управлением Windows 7 64bit, но я не обратил на это внимания перед установкой Ubuntu).

i386 относится к 32-разрядной версии, а amd64 (или x86_64) относится к 64-разрядной версии для процессоров Intel и AMD.

Википедия i386 запись:

Intel 80386, также известный как i386, или просто 386, был 32-разрядным микропроцессором, представленным Intel в 1985 году . Это называется x86, IA-32 или архитектура i386, в зависимости от контекста.

Запись в Википедии x86_64:

x86-64 является расширением набора команд x86. Он поддерживает гораздо большие виртуальные и физические адресные пространства, чем это возможно в x86, что позволяет программистам удобно работать с гораздо большими наборами данных . После запуска архитектуры под именем "x86-64" AMD переименовала его в AMD64 . x86 -64 до сих пор используется многими в отрасли как термин, не зависящий от производителя, в то время как другие, в частности Sun Microsystems (сейчас Oracle Corporation) и Microsoft, используют x64.

Даже если у вас есть процессор Intel, вы должны использовать AMD64 для установки 64-битной версии на свой компьютер (он использует те же наборы инструкций).

Я настоятельно рекомендую использовать его. По большей части вы не заметите разницы, но для больших рабочих нагрузок (таких как редактирование видео, игры и т. Д.) Компьютер будет работать быстрее (у компьютера есть возможность вычислить 2 + 2 + 2 = 6 вместо необходимости выполнять 2 + 2 = 4 + 2 = 6 в примере). В мире Windows 32-битная ОС не позволит вам использовать более 3,5 ГБ ОЗУ на вашем компьютере (даже если у вас есть 8!). Вам необходимо использовать 64-битную ОС, чтобы полностью использовать всю оперативную память. Однако для Linux такого ограничения нет (спасибо, Ури).

Несмотря на это, мир изменился с 32-разрядных, и он только там поддерживает старые машины, которые не способны работать на 64-разрядных.

Эта последняя часть теперь (в Linux, конечно) Просто не соответствует действительности, вы МОЖЕТЕ использовать более 3,5 ГБ ОЗУ с ядром PAE в 32-битной версии. не будет ли ограничение 32 ГБ на 3,5 Гбайт оперативной памяти 4 ГБс- <память графической карты>? Для простоты я пропустил такие технические детали, как память видеокарты. Моя цель состояла в том, чтобы сказать: «Если у вас больше 3,5-4 гигабайт, используйте 64 бит». 64-битный - это каждый бит, который можно использовать и стабильный, как 32-битный, с почти ничтожным исключением Flash при определенных обстоятельствах в определенное время суток и при выравнивании планет, испускающих космические лучи.

Архитектура названа в честь AMD, потому что AMD изобрела ее с Athlon 64. Аналогично, 32-разрядная архитектура i386 названа в честь процессора Intel 386, поскольку она была первой в своем роде, но i386 также будет работать на процессорах AMD. Так что да, вы можете использовать этот образ ISO.

да, вы можете установить amd64 bit на 64-битный процессор Intel. AMD изобрела процессор набора битовых команд x86-64, так что название - это просто дань AMD.

Спасибо за разъяснение этого. Я знаю, что это был простой вопрос, но я нигде не мог найти ответ.

Разница между amd64 и i386 заключается в том, что amd64 является 64-разрядным, а i386 - 32-разрядным . Это ширина (в битах) регистров, доступных в ядре.

По сути, наибольшее число, которое 32-разрядное ядро ​​процессора может обработать за один раз, составляет чуть более 4,29 миллиарда, в то время как 64-разрядное ядро ​​может обрабатывать чуть более 18,44 миллиарда миллиардов.

Ядра современных ПК могут работать как 64-разрядный или 32-разрядный процессор, в зависимости от того, какую версию операционной системы вы установили.

64-разрядный код имеет тенденцию работать быстрее, чем 32-разрядный код, либо потому, что он может работать с большими числами на ходу, либо потому, что 64-разрядные ядра имеют больше регистров, поэтому могут хранить больше вещей без необходимости помещать их во внешнюю память. Хотя нет никакой гарантии, что 64-битный код будет работать быстрее, если код не был написан для использования дополнительных возможностей процессора.

Компиляция в 32-битной системе даст код, отличный от 64-битной системы. Вы можете доказать это, скомпилировав код ассемблера в двух системах. Предполагая, что ваш C-файл - myfile.c, попробуйте gcc -S myfile.c в обеих системах сравнить myfile.s

Хорошо написанный код для 32-разрядной системы должен компилироваться и выполняться в 64-разрядной системе, но не весь код написан хорошо. Многие программисты делают предположения о системе, которые могут быть неверными: например, ширина регистра или порядок байтов.

Без доступа к исходному коду трудно понять, в чем проблема, но segmenation fault указывает, что была сделана попытка получить доступ к памяти, которая не принадлежит программе. Это может, например, указывать на то, что mem_ptr является 32-битным указателем, что хорошо в 32-битной системе, но должно быть 64-битным указателем в 64-битной системе.


Если вы зайдете на страницу загрузок, к примеру, Ubuntu, то увидите большой список ISO-образов, которые можно загрузить. К примеру, для версии настольного ПК (desktop) существуют следующие две версии дистрибутивов: amd64 и i386. Аналогично для Windows дистрибутивов это 32-bit и 64-bit. Какой же дистрибутив загружать? Возможно ли установить образ amd64 на Intel процессор?

В кратце, 32-bit и 64-bit компьютеры отличаются в архитектуре. Главная разница между архитектурами заключается в поддержке размерности данных. Машины с архитектурой 32-bit могут понимать данные размерностью в 32-bit. Все что больше этого значения такая машина прочитать не сможет. Аналогично, машина с 64-bit может прочитать и обработать данные длиною в 64-bit. Не смотря на то, что 64 это в два раза больше чем 32, 64-bit данные могу содержать в себе намного больше, чем просто двойную информацию 32-bit. Это также объясняет почему 64-битные машины могут работать быстрее и эффективнее чем 32-битные.


Что такое Amd64?

В зависимости от использования 32-bit и 64-bit люди дали им имена. Архитектуру 32-bit часто ассоциируют с именами i386 или x86, в то время как 64-bit архитектура широко известна как AMD64/EM64T или /x86-64/x64, в зависимости от продукта и производителя.

Почему AMD64? В соответствии с информации с Википедии фирма AMD была первой, кто разработал спецификацию 64-битного процессора. Они первоначально назвали эту архитектуру x86-64, но позднее переименовали в AMD64, когда вышел релиз их первого 64-битного процессора: серия AMD-K8. С того времени AMD ввела термин 64-битного процессора.


В наше время технология AMD64 уже ассоциируется с 64-битной архитектурой и ничем не связана с процессорами компании AMD.

Работает ли AMD64 Ubuntu только с процессорами AMD?

Если вернутся к вопросу о выборе ISO образа Ubuntu, то в случае если у вас 32-bit процессор, то вам необходимо загружать и устанавливать Ubuntu версии i386. Если же ваш процессор поддерживает архитектуру 64-bit, то в таком случае можете смело загружать и устанавливать версию amd64, в независимости от того какой фирмы у вас процессор.

С увереностю могу сообщить что если у вас компьютер поддерживает архитектуру 64-bit, то вы также без проблем можете устанавливать и работать в версии Ubuntu i386 (32-bit). Но в таком случае вы не сможете использовать весь ресурс своего компьютера. Если у вас машина 32-bit, то AMD64 Ubuntu у вас однозначно работать не будет.

Возможно ли запускать приложения 32-bit на Ubuntu версии amd64?

Если в вашем компьютере установлен современный процессор от AMD или Intel 1) , вероятнее всего он является 64-битным, т.е. поддерживает обе эти архитектуры.

В выборе, какую из версий дистрибутива GNU/Linux устанавливать - под AMD64 (64-битную) или под i386 (32-битную), однозначно рекомендую предпочесть первый вариант.

В чём преимущества архитектуры AMD64 над i386?

Основные особенности архитектуры, имеющие значение даже для тех, кому не нужны преимущества в управлении большими объёмами ОЗУ, состоят в следующем:

Регистры общего назначения расширены с 32 бит до 64 бит; Удвоено количество регистров общего назначения (с 8 до 16); SSE/SSE2 являются стандартной частью архитектуры, а значит все скомпилированные под AMD64 программы могут пользоваться этими инструкциями без всяких дополнительных проверок.

Ожидать ли прироста производительности от перехода на AMD64?

Да. Дело в том, что современные компиляторы с C/C++ и других высокоуровневых языков обладают достаточным “интеллектом”, чтобы путём простой перекомпиляции под новую архитектуру, ускорить даже не оптимизированные специально под неё программы. Прежде всего – задействованием дополнительных регистров общего назначения, а также использованием инструкций SSE и SSE2 там, где раньше приходилось прибегать к более медленным инструкциям математического сопроцессора (FPU).

В результате всего этого, после простой перекомпиляции под AMD64, программы начинают работать от 20 до 100% быстрее, даже без каких-либо изменений в исходном коде. Подробности представлены в этом тестировании (другие форматы: ODT, PDF) 2) .

Following conclusions were made:
1.It was clearly shown that most of applications have better performance in 64 bit environment.
2.Performance degradation was observed in very few cases and it was very low – in about few percents – lame MP3 encoder, GNU compiler.
3.Most of applications have 20-30% performance gain in 64 bit mode.
4.In very few cases the gain was extremely high – 70-100% – mathematical processing in octave, image processing with ImageMagic.

Кроме того, в конце 2009-го года Phoronix провёл собственное сравнение производительности 32- и 64-битного ПО, подтвердив вышеприведённые результаты, а в следующем сравнении от апреля-2011 преимущество 64-битного ПО был не просто подтверждёно ещё раз и во множестве тестов, но также высказано недоумение, почему некоторые дистрибутивы GNU/Linux до сих пор предлагают устаревшую 32-битную версию в качестве основной.

На замену полностью 64-битной amd64 в 2012-м году была предложена смешанная архитектура x32, однако было продемонстрировано, что она не имеет заметных преимуществ над полной 64-битностью, поэтому amd64 по-прежнему остаётся предпочтительным выбором.

Какие ещё плюсы есть у AMD64?

Поскольку 64-битная арифметика на 64-битной архитектуре выполняется гораздо быстрее, чем на 32-битной, некоторые программы могут под AMD64 задействовать её там, где под i386 не использовали, т.к. было слишком медленно.

К примеру, счётчик переданных и полученных данных в сетевом коде ядра Linux на 32-битных архитектурах является 32-битным числом, и соответственно, обнуляется каждые 4 гигабайта. Именно поэтому, на 32-битных архитектурах невозможно увидеть более 4 ГБ в строчке “RX bytes/TX bytes” вывода команды ifconfig . Как пишут в одном списке рассылки,

Итак, архитектура процессора. Казалось бы, кто этого не знает? Кто-то с гордостью скажет "У меня Core i7, новый, 6 ядер" - и это тоже будет относиться к архитектуре. Кто-то копнёт поглубже, говоря о размере кеша, о количестве команд за такт, о конвейере команд и т.п. Но речь сейчас не совсем об этом. Это нужно знать, чтобы предсказать производительность процессора (наряду с частотой), подумать о проблемах с оптимизацией.

А нам часто надо понять, запустится ли загружаемая программа на данном ПК (и под данной операционной системой, если это не сама операционная система!), а среди программ в Windows, а особенно - в Linux - есть весьма много обозначений архитектур, которые могут слегка смутить человека, только начинающего разбираться с архитектурами. Да, кто-то может отослать человека к истории процессоров, и знать её правильно - но история - это история, а нам надо решить такой, казалось бы, простой вопрос: пойдёт ли это на данном ПК или нет. Иногда вопрос становится посложнее: нужны ли эти средства разработки (например, ассемблер, компоновщик), чтобы программа полноценно собралась из исходных кодов (да, "привет Linux" и основной способ распространения программ GPL).

Тем не менее, большинство пользователей знают, что у них 64-разрядная (или 32-разрядная) система, так что примерно представляют, что и для чего качать. Но периодически на форумах возникает "странный" вопрос: "Что качать: AMD64 или ARM64? А если у меня Intel?"

Итак, давайте договоримся: пока будем говорить только о ПК, ноутбуках и Windows-планшетах (не RT). Всяческие телефоны, андроид-планшеты (не путать с Windows), хромобуки, Raspbery Pi и им подобное оставим вне рассмотрения. Экзотику ARM-BIOS - тоже. Так что, увидев в "архитектуре" буквы "ARM", отбрасываем это для вышеперечисленных устройств. Также не будем рассматривать компьютеры Apple - это отдельная экосистема, пусть и с возможностью установки и запуска Windows.

Что значит "архитектура" с точки зрения программного кода? Чаще всего её обозначают названием процессора (или целой группы процессоров), но, благодаря обратной совместимости, более новые процессоры могут запустить программы, рассчитанные на старую архитектуру - при условии, что ОС это позволит.

Ну что же, начнём с начала. С давних времён, которые, как ни странно, остаются актуальными.

i8086 (8086, 86, иногда пишут DOS или DOS16)

Древний процессор Intel (аж с 1978 года!), однако обратная совместимость заставляет "тащить" его систему команд вплоть до самых современных процессоров. Так что да, Core i7 9-й серии и Ryzen 2xxx при определённых условиях способны запустить программы под эту архитектуру. Кто-то спросит, зачем это надо. На самом деле, здесь речь не столько о поддержке старой системы команд, сколько о древнем, казалось бы, уже устаревшем реальном режиме работы процессора (16-разрядном, а также режим "виртуального 86" уже на уровне 386 и выше), так что программы, откомпилированные под этот режим, будут маркировать именно такой архитектурой. И трансляторы, генерирующие такой код, будут маркироваться именно так. Где это можно встретить?

1. DOS и некоторые приложения под DOS. Да, кто учился в ВУЗе 20 лет назад и более, но до этого не "фанател" от компьютеров, воспринимает DOS как "ругательство" с непонятной системой команд. Кто посерьёзнее - понимал, что это кое-где может пригодиться. Впрочем, система команд DOS актуальна и сейчас - достаточно запустить cmd в Windows , но речь не об этом. А вот с самими программами под DOS несколько сложнее. Да, даже современные версии Windows (только 32-разрядные, x86) позволят запускать отдельные, простейшие программы под DOS, но это не особо актуально. Может быть, удастся запустить простой DOS на современном компьютере, но толку с того будет мало: большинство современных разделов жёсткого диска будут не видны. Под Linux запуск DOS-приложений, собственно, и не был предусмотрен (без эмулятора, разумеется, с эмулятором и сейчас не проблема всё это запустить). Следует помнить, что многие более поздние программы, будучи программами DOS, имели всего лишь 16-битный загрузчик, а грузили уже 32-разрядный "расширитель". Интерес могут представлять отдельные старые программы и игры.

2. Более актуально то, что BIOS (который до сих пор актуален на старых материнских платах, а на полноценных новых UEFI умеет работать в режиме эмуляции BIOS) передаёт управление загрузчику именно в 16-битный реальный режим. Как следствие, если Вы пишете код (что вряд ли) или собираете загрузчик (например, GRUB) для BIOS, Вам потребуются инструменты i8086.

i80386 (80386, 386, i386)

Тоже довольно древний процессор (1985 года выпуска). Однако его архитектура до сих пор представляет интерес. Иногда некоторые программы до сих пор маркируют i386, потому что именно он положил начало 32-разрядной архитектуре Intel. Это значит, что программа, архитектура которой маркирована "i386", запустится в любой 32-разрядной операционной системе (если она совместима с той, под которую собрали, и имеются все нужные зависимости). Более того, в большинстве случаев такие прикладные программы запустятся и под 64-разрядной операционной системой (об этом позже). Поэтому длительное время разработчики "не заморачивались" и в графе "архитектура" писали "i386", хотя уже во всю работали Pentium 3. Доходило до того, что указывали архитектуру "i386", а в требованиях - ММХ (которого на момент выпуска 386-го не было и в мыслях). Но - сугубо формально - если указана архитектура "i386", то программа (или операционная система) должна запуститься на настоящем i80386. Понятное дело, что процессоры AMD (начиная с тех же самых Am386) тоже отлично поддерживают эту архитектуру.

i586

Довольно редкое обозначение архитектуры. Начнём с того, что процессора с таким обозначением не было и нет. Понятно, что, в конце концов, процессор i386 стал неактуален, программы собирали под процессоры не ниже Pentium, стало быть, на 80386 их запустить никак не удастся. Обозначение вводили в некоторых дистрибутивах Linux. Теоретически, программа и ОС, маркированная таким образом, запустится на любом процессоре Intel, начиная с Pentium, а на AMD, начиная с К5 (есть нюансы, так что лучше - начиная с К6). Так что, если у Вас не такая древность, программа запустится (с учётом программной совместимости с ОС и зависимостей).

i686

Это уже следующее поколение процессоров (опять же, именно таких процессоров не было), начиная с Pentium II (на самом деле, это поколение начинается с Pentum Pro, но по факту настоящее распространение получил именно Pentium II, так что не факт, что такие программы запустятся под Pentium Pro). Хотя всё это - уже древность. Понятно, что в таком процессоре есть ряд инструкций, недоступных для i586, но имеющихся в Pentium II и выше. Многие дистрибутивы Linux какое-то время собирались именно для такой архитектуры. Если у Вас старый компьютер Intel, то, скорее всего, Вы запустите на нём такую программу или ОС (на новом - тем более при условии совместимости, при запуске старых ОС нужно понимать аппаратную несовместимость и отсутствие драйверов оборудования). Неинтеловские процессоры - с этим чуть хуже. Теоретически, K6-II и K6-III поддерживали много функций от Pentium II, но кое-чего им не хватало, поэтому уровень их совместимости ставили i586. Аналогично - VIA C3 и ему подобные. Впрочем, даже такая древность была способна загружать Windows вплоть до "висты" (а то и "семёрку", вот 8.1 они не запускали, проверено).

x 86 (IA32, Intel32, реже - х32)

Общее обозначение 32-разрядных программ, в настоящее время актуально. Конкретные требования надо читать отдельно, может быть достаточно i386, а может не работать и под первыми сериями Core. Слова "Intel" не надо бояться AMD-шникам: архитектура вполне совместимая, но о конкретном уровне совместимости должно быть написано отдельно. Обычно проблема бывает в поддержке конкретной версии SSE, это должно быть указано в сопроводительной документации. AMD отстаёт от Intel в поддержке SSE, но не очень сильно. В большинстве случаев на настоящее время достаточный уровень совместимости для AMD - Athlon-II (Phenom-II), в перспективе - FX; под Intel пока, как правило, хватает последних Pentium 4 Dual Core. Разумеется, речь не идёт о достаточной производительности - просто о возможности запуска и использования всех функций.

Под 64-разрядной ОС в большинстве случаев запустится программа x86 (опять же, при соблюдении всех зависимостей), но не драйвер.

32-разрядная ОС Windows имеет возможность запуска 16-разрядных приложений (DOS, Win16).

Название x32 употреблять не рекомендуется (во избежание путаницы со следующим пунктом), но его используют, когда говорят об UEFI.

X32 EABI

Относится только к специальному режиму работы отдельных программ в 64-разрядной операционной системы. Планировалось, что этот режим сэкономит память, поскольку разрядность адреса программ будет 32, а разрядность системы - 64. Программа сможет адресовать всего 4 гигабайта памяти, но ОС может "крутить" несколько таких программ.

На практике этот режим "не прижился", поскольку под него не было "экосистемы", а аналогичные возможности (за редким исключением) есть у x86. Были лишь некоторые сборки Linux с такой поддержкой. Сейчас не актуально.

IA64

Не путать с x86_64. Достаточная редкость и "неудача" Intel. Эта архитектура использовалась в серверных процессорах Itanium, которые уже утратили актуальность. На обычные ПК не устанавливались. Если увидите программу с таким обозначением - она Вам не нужна (если Вы - не администратор такого вот сервера).

x86_64 (x64, AMD64, реже - EM64T, Intel64)

Не путать с IA64. Обычная на сегодняшний день архитектура 64-разрядных систем. Для большинства ПК и мощных ноутбуков актуальны именно такие ОС, запускающие приложения этой архитектуры, а также архитектуры x86 (но не 8086, эти не запустить без эмулятора; впрочем, под Linux wine умудрялся как-то запускать в 64-разрядной ОС приложения Win16). Драйвера x86 в подавляющем случае не поддерживаются ни в Windows, ни в Linux. Был случай удачного "проброса" кода отдельного драйвера из x86 в "прослойку" драйвера x86_64, но это - исключение, к тому же под Linux (linmodem). Прикладные программы х86, наоборот, работают отлично - вплоть до того, что у меня был опыт на заре Athlon64 запуска всей ОС с архитектурой i586 на ядре, специально собранном под AMD64. Не работал только ТВ-тюнер, но это - аппаратные проблемы.

Что касается названия. Изначальное название архитектуры - AMD64, так её иногда и называют, потому что впервые её ввела именно компания AMD. Но и у Intel вскоре появилась такая же архитектура (правда, уже названная EM64T), так что запуск приложений и ОС, помеченных "AMD64", на сколь бы то ни было современных Intel (начиная где-то с "середины" линейки Pentium 4) проблем не вызывает. Хотя слово AMD. Многие (кроме "топовых") популярные планшеты и "планшетоноутбуки" на Intel Atom формально поддерживают такую архитектуру, но и UEFI, и предустановленная ОС у них - 32-разрядная, поэтому про Windows x64 можно забыть (а вместе с ним - Linux-подсистема и ряд программ, в т.ч. и все современные игры - но их бы не удалось нормально использовать из-за памяти и графики). А вот 64-разрядный Linux под ними запускается (хотя и не всегда правильно работает со всем "железом") - ему без разницы, какая разрядность у UEFI. Эмуляции BIOS, к сожалению, у таких планшетов нет, а сторонние средства пока отсутствуют.

Итого на современном ПК, если у Вас есть прикладная программа, архитектура которой помечена:

i8086 (и эквивалентно) - запустить, может, и можно, но проблематично. Под 64-разрядной ОС - только через эмуляцию.

i386, i586, i686, x86, - можно запустить, но нужно смотреть совместимость, зависимости и конкретные требования.

x86_64 = АМD64 - можно запустить только под 64-разрядной ОС (также нужно смотреть зависимости и конкретные требования).

Если у нас драйвер - его архитектура должна совпадать с ОС.

Если у нас системное ПО:

i8086 - теоретически, можно запустить, если у нас BIOS или его эмуляция, но зачем (если речь не идёт о первой стадии загрузчика).

i386, i586, i686, x86 - можно запустить, если у нас BIOS или UEFI x32 (в последнем случае - только для отдельных ОС, Windows 8+ и Linux).

x86_64 = AMD64 - можно запустить, если у нас BIOS или UEFI x64, а если ОС - Linux, то и UEFI x32.

Читайте также: