Різниця між завантаженням i386 та amd64?


164

Яка різниця між стандартним завантаженням i386 і завантаженням amd64 Ubuntu 11.04? Зараз я запускаю i386 на машині amd, чи краще моя система працюватиме із завантаженням amd64? (на моїй машині працює ОС Windows 7 64bit, але я нехтував увагою до цього перед установкою Ubuntu).



Відповіді:


165

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) та 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 Гбіт обмеження на 32 біт складе 4 Гб- <пам'ять відеокарти>?
Кріскін

3
Для простоти я опустив такі технічні характеристики, як пам'ять відеокарти. Моєю метою було сказати "якщо у вас більше 3,5-4 концертів, використовуйте 64 біт".

1
@Treefroginc Що конкретно налаштовує?
Урі Еррера

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

41

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

Джерело: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386


10

так, ви можете встановити amd64 біт на процесор Intel 64 біт. AMD винайшов процесор набору інструкцій x86-64 біт, тому ім'я є лише даниною AMD.


Дякую, що ви очистили це. Я знаю, що це було просте запитання, але відповіді я ніде не міг знайти.
Дейв Воловер

8

Різниця між 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-бітної системи.


Я перевірю це і повернуся до цього ... Thanksx
bikram990

realloc(mem_ptr, 0)Функція звільнення пам'яті , раніше виділяються malloc, callocі т.д. Якщо цей покажчик був пошкоджений яким - або чином , то ви намагаєтеся звільнити пам'ять ви не володієте , і це породжує помилку сегментації
Warren Hill

6

Так, ви можете використовувати це .ISO. amd64 відноситься до архітектури. AMD був першим, хто створив 64-розрядний процесор, тому я вважаю, що він був названий на той час, і назва застрягла. Це здається трохи заплутаним, але amd64 означає 64-розрядні.


10
Вони не першими створили 64-розрядний процесор. Раніше Intel мав його, але він не був сумісним назад, тому його не прийняли широко. Назва amd64 повинна була відрізняти архітектуру AMD від Intel IA64, яка зараз припинена.
psusi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.