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

135

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

задан Rob 24.07.2011 в 01:57
источник

5 ответов

134

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-разрядной версии.

    
ответ дан user6658 24.07.2011 в 02:00
источник
37
  

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

Источник: Ссылка

    
ответ дан Mitch 31.05.2012 в 23:00
8

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

    
ответ дан Roney Thomas 31.05.2012 в 23:23
6

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

    
ответ дан reverendj1 31.05.2012 в 22:59
5

Разница между 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-разрядной системе.

    
ответ дан Warren Hill 18.03.2013 в 14:24