From: Sergey Matveev Date: Wed, 4 May 2022 14:12:14 +0000 (+0300) Subject: amd64, x86_64, x64, intel64 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e2185b7733f55709666d1f4f8a59adcf0eed4506;p=stargrave-blog.git 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 и совершенно другая и несовместимая штука. ---