Различие между загрузкой i386 и amd64?

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

197
задан 22 March 2014 в 05:44

5 ответов

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, однако, такого ограничения нет (спасибо, Uri).

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

195
ответ дан 22 November 2019 в 22:50

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

Источник: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386

48
ответ дан 22 November 2019 в 22:50

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

12
ответ дан 22 November 2019 в 22:50

Да, вы можете использовать этот .ISO. amd64 относится к архитектуре. AMD была первой, кто создал 64-битный процессор, поэтому я считаю, что в то время он был назван так, и это название прижилось. Это может немного сбить с толку, но amd64 означает просто 64-разрядную версию.

6
ответ дан 22 November 2019 в 22:50

Разница между 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-битной системе, но не весь код написан хорошо.Многие программисты делают предположения о системе, которые могут быть неверными: например, о ширине регистра или порядке байтов.

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

10
ответ дан 22 November 2019 в 22:50

Другие вопросы по тегам:

Похожие вопросы: