ARM64, AMD64 и ARMv7: как выбрать архитектуру сборки
Содержание
Почти каждая страница загрузки предлагает несколько файлов одной и той же программы: amd64, arm64, иногда armeabi-v7a или universal. Это не разные версии продукта, а один и тот же код, скомпилированный под разные наборы инструкций процессора. Выбрать нужно ровно один — тот, что соответствует вашему устройству.
Разберём три архитектуры, которые встречаются чаще всего, научимся определять свою на любой платформе и сведём всё в шпаргалку. После этого выбор файла в центре загрузок займёт несколько секунд.
Почему сборка должна совпадать с процессором
Архитектура набора команд — это «язык», который понимает процессор. Компилятор переводит исходный код программы в машинные инструкции конкретного языка, и процессор другой архитектуры такие инструкции просто не распознаёт. Поэтому программа для ARM не запустится на x86 без специального слоя трансляции, и наоборот.
Операционная система обычно защищает пользователя от ошибки: Android откажется устанавливать несовместимый APK, Linux сообщит о неверном формате исполняемого файла, Windows покажет ошибку запуска. Хуже, когда программа всё же запускается через эмуляцию — тогда всё работает, но медленнее, чем должно.
AMD64 (x86_64): настольные компьютеры и ноутбуки
Самая распространённая архитектура для ПК. Название сбивает с толку: 64-разрядное расширение действительно разработала AMD, но используют его и процессоры Intel. Поэтому файл с пометкой amd64 подходит машинам с Intel Core, Xeon, AMD Ryzen и практически любым другим настольным процессорам последних лет.
Синонимы в именах файлов: amd64, x86_64, x64, иногда просто «64-bit». Если у вас обычный компьютер или ноутбук на Windows либо Linux, с высокой вероятностью нужен именно этот вариант.
ARM64 (aarch64, arm64-v8a): смартфоны, Mac и серверы
Архитектура ARM изначально пришла из мобильных устройств, где ценилась экономичность, а сегодня встречается повсюду: практически все современные смартфоны, компьютеры Apple на чипах M-серии, часть тонких ноутбуков на Windows, а также большинство недорогих облачных серверов и одноплатных компьютеров.
В зависимости от платформы её обозначают по-разному: arm64 в общем случае, aarch64 в мире Linux и macOS, arm64-v8a в терминологии Android. Это одна и та же архитектура, названия взаимозаменяемы. Для владельцев Mac есть отдельный разбор в статье про Intel и Apple Silicon.
ARMv7 и универсальные сборки
ARMv7, в Android известная как armeabi-v7a, — это 32-разрядное поколение ARM. Такие процессоры стояли в смартфонах прошлых лет и до сих пор встречаются в бюджетных и старых устройствах. Ключевое ограничение: 64-разрядный APK на таком устройстве не установится, нужна именно сборка armeabi-v7a.
Universal-сборка содержит машинный код сразу для нескольких архитектур. Она подходит любому устройству и избавляет от выбора, но занимает больше места — фактически внутри лежит несколько копий программы. Разумный подход: берите universal, если сомневаетесь или собираетесь ставить один файл на разные устройства; в остальных случаях выбирайте точную сборку.
Про Android. Клиент Clash Meta for Android публикуется в трёх вариантах — arm64-v8a, armeabi-v7a и universal. Для телефона, купленного в последние годы, почти наверняка подходит arm64-v8a.
Как узнать архитектуру на своей платформе
| Платформа | Где смотреть | Что означает результат |
|---|---|---|
| Windows | «Параметры» → «Система» → «О системе», строка типа системы | x64 — берите amd64; ARM — берите arm64 |
| macOS | Меню Apple → «Об этом Mac», строка чипа или процессора | Apple M-серии — arm64; Intel — amd64 |
| Linux | Команда uname -m | x86_64 — amd64; aarch64 — arm64; armv7l — 32-разрядный ARM |
| Android | Раздел сведений об устройстве или приложение для просмотра характеристик | ARM64 / arm64-v8a — 64-разрядная сборка; ARMv7 — armeabi-v7a |
На Linux команда возвращает ровно одну строку — она и есть ответ:
uname -m
Шпаргалка по выбору файла
| Устройство | Архитектура | Пометка в имени файла |
|---|---|---|
| Ноутбук или ПК на Windows | x86_64 | amd64, x64 |
| Mac с чипом M-серии | arm64 | aarch64, arm64 |
| Mac на Intel | x86_64 | amd64, x64 |
| Обычный сервер или VPS | чаще x86_64 | amd64 (проверьте через uname -m) |
| Смартфон последних лет | arm64-v8a | arm64-v8a или universal |
| Старый 32-разрядный телефон | armeabi-v7a | armeabi-v7a |
С этой таблицей выбор становится механическим: определили архитектуру — взяли соответствующий файл. Общие рекомендации по загрузке собраны в статье о том, что выбрать перед скачиванием, а порядок установки на телефон описан в руководстве по Clash Meta for Android.