]> Sergey Matveev's repositories - stargrave-blog.git/commit
amd64, x86_64, x64, intel64
authorSergey Matveev <stargrave@stargrave.org>
Wed, 4 May 2022 14:12:14 +0000 (17:12 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 4 May 2022 14:12:14 +0000 (17:12 +0300)
commite2185b7733f55709666d1f4f8a59adcf0eed4506
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent7210cb67791bdea1a7137b658276197067d9aee4
amd64, x86_64, x64, intel64

https://en.wikipedia.org/wiki/X86-64
https://sourceware.org/binutils/docs/as/i386_002dISA.html
Ужасно бесит что буквально за пять минут можно встретить в разном софте
разные названия 64-бит x86 архитектуры. Лично для меня amd64 это то что
я пишу и в BSD встречаю. x86_64 это так в GNU/Linux мире принято (просто
создаётся впечатление). А x64... это нечто яростно выбешивающее меня.
Intel64 не встречал прежде, до чтения статьи на Wikipedia.

Оказывается... AMD64 и Intel64 вполне себе разные ISA! Судя по
Wikipedia, всякие штуки типа: не отличающегося на практике (хотя это и
undefined behaviour) значения, формата микрокода, ограничения вне 32-бит
режима -- выглядят как не существенными на практике для пользователя. Но
другие отличия вроде бы выглядят кардинально и серьёзно. Что же получается?
Что на самом деле нет одного amd64 (пускай и с расширениями, типа AVX)?
Есть действительно разные наборы команд и поведения для AMD и Intel
процессоров? Почему же я не встречаю intel64, а только amd64? Или
программистам приходится жутко страдать и делать CPU detection и
удовлетворять оба этих процессора? Или это как-раз то самое: мы работаем
на AMD64, но поддерживаем чётко-заданный-список-CPU? Звучит всё страшно
пугающе несовместимо.

А ещё, бывает, находятся особо умные, кто пишет "IA64", где-то, видимо,
предварительно увидев "IA32". Вот только IA64 это Itanium и совершенно
другая и несовместимая штука.