Armhf и arm64 в чем разница
Перейти к содержимому

Armhf и arm64 в чем разница

  • автор:

Архитектура процессора. Что такое armeabi-v7a и arm64-v8a

Быстро узнаем, что такое armeabi-v7a, arm64-v8a и какие приложения Вы можете установить на свое устройство.

Наверное у каждого человека, который качал приложения не с официального магазина, возникали ошибки вида: Приложение не установлено, не удалось разобрать пакет и тому подобные. Причин для этого может быть несколько, но сегодня мы рассмотрим одну из самых главных. Технический мир развивается и постоянно появляются новые технологии от компании Google и других производителей Андроид устройств. Если ближе к сути, то у каждого процессора есть своя архитектура (Набор инструкций) и их бывает несколько видов:

  • armeabi-v7a — самый популярный набор инструкций на данный момент, работает с 32-разрядными процессорами;
  • arm64-v8a — 64-разрядная архитектура, которая набирает обороты и появляется на новых устройствах все чаще, работает с 64-битными процессорами;
  • x86 и x86_64 — для процессоров Intel, которые устанавливаются на ноутбуки и планшеты.

Узнаем, какая архитектура у Вашего устройства

  1. Качаем с Google Play приложение Droid Hardware Info. Далее выполняем следующие действия: переходим в раздел -> Система -> Процессор и смотрим пункты «Архитектура процессора», а также «Набор инструкций».
  2. Если у Вас есть Telegram, заходим в настройки и листаем в самый низ, где будет написана Ваша архитектура.

архитектура Telegram

Какие игры и приложения Вы можете устанавливать?

  • Если у Вас armeabi-v7a, то выбор невелик и нужно искать файлы с поддержкой этого набора инструкций;
  • Если у Вас arm64-v8a, можно устанавливать файлы armeabi-v7a и arm64-v8a;
  • x86 — только x86, x86_64 — можно скачивать x86 и x86_64.

Итог — если Вы не хотите разбираться во всем этом, просто старайтесь скачивать файлы с armeabi-v7a, они поддерживаются почти везде.

Но есть исключения:

  1. Если на устройстве с процессором arm64-v8a установлена 32-разрядная операционная система, то можно будет устанавливать только файлы armeabi-v7a.
  2. С выходом новой версии Android 14, при установке приложений armeabi-v7a, система предупреждает, что в скором времени Google откажется от поддержки 32-битных версий и останется только arm64-v8a. Насколько быстро произойдет переход — неизвестно. Но вряд ли это будет быстро.

Если у Вас появились дополнительные вопросы — задавайте их в комментариях, мы постараемся ответить.

В чем разница между arm64 и armhf?

Raspberry Pi Type 3 имеет 64-битный процессор, но его архитектура не arm64 , а armhf . В чем разница между arm64 и armhf ?

2 ответа

armhf расшифровывается как «arm hard float», и это имя, данное порту debian для процессоров arm (armv7 +) с аппаратной поддержкой операций с плавающей запятой.

На биглебоне черный, например:

Хотя другие команды (такие как uname -a или arch ) будут просто отображать armv7l

vfpv3 , указанный в разделе Features , относится к поддержке операций с плавающей запятой.

Между прочим, armhf , если ваш процессор поддерживает его, в основном заменяет Raspbian, который, если я правильно понимаю, был в основном перестроением из armhf с обходными маневрами для решения проблемы отсутствия поддержки операций с плавающей запятой в исходных Raspberry Pi. В настоящее время, конечно, вокруг Raspbian создана целая экосистема, поэтому они, вероятно, не собираются отказываться от него. Однако отчасти поэтому beaglebone запускает прямо debian, и это нормально, даже если вы привыкли к Raspbian, если вам не нужно какое-то специальное включенное несвободное программное обеспечение, такое как Mathematica.

Обновление: Да, я понимаю, что этот ответ не объясняет разницу между arm64 и armhf. На этой странице есть отличный ответ, который объясняет это. Этот ответ был призван помочь задать вопрос правильному пути, так как на момент запроса у них явно было недопонимание относительно возможностей Raspberry Pi.

Где ты видишь, что архитектура — это армхф? На моем Raspberry Pi 3 я получаю:

В любом случае, armv7 указывает, что архитектура системы 32-битная. Первая архитектура ARM, предлагающая 64-битную поддержку, — это armv8. См. Эту таблицу для справки.

Вы правы, что процессор в Raspberry Pi 3 64-битный, но ОС Raspbian еще не обновлена для 64-битного устройства. 32-битное программное обеспечение может работать в 64-битной системе (но не наоборот). Вот почему вы не видите, что архитектура считается 64-битной.

Если вам интересно, вы можете следить за проблемой GitHub для 64-битной поддержки здесь.

Разница между ARM64, ARMel и ARMhf

Я пытаюсь загрузить образ Debian для процессора ARM Cortex-A7, но не могу понять, какой образ загрузить. Я заглянул на сайт Debian и увидел три разных варианта загрузки для процессора ARM. Какая разница между ними и какую мне скачать?

3 ответа 3

Порт ARM EABI (armel) предназначен для ряда более старых 32-разрядных устройств ARM, особенно тех, которые используются в аппаратном обеспечении NAS и различных * подключаемых компьютерах.

Более новый порт ARM Hard-Float (armhf) поддерживает новые, более мощные 32-разрядные устройства, использующие версию 7 спецификации архитектуры ARM.

64-битный порт ARM (arm64) поддерживает новейшие 64-битные устройства на платформе ARM.

Хотя этот вопрос относится к концу 15 года, его все же полезно знать.

Итак, объяснение предложения Debian требует некоторой предыстории.

То, о чем вы говорите, это названия его официальных портов ARM. Как видите, они соответствуют определенной тройке опций ISA, OS и ABI. Они, в свою очередь, являются наименьшим распространенным множителем, который может гарантировать программную совместимость скомпилированных пакетов.

Оставляя в стороне самоочевидную сборку Arm64 (использующую 64-битный режим некоторых процессоров ARMv8), я думаю, что большинство недоразумений возникает из других, начиная с arm-linux-.

Когда-то давно на самом деле была только одна «рука» цель, но по ряду причин, начиная от порядка байтов и заканчивая поддержкой с плавающей запятой и производительностью, она устарела. EmbeddedABI (довольно пустой псевдоним, если вы спросите меня технически, но так называет ARM), с тех пор заменил его безупречно.

Armel — это не что иное, как новое имя, чтобы различать как старую версию, так и руку с прямым порядком байтов (тогда неофициальную, а теперь и вовсе заброшенную). Следует учитывать , самое основное, и он должен работать практически на любом оборудовании под солнцем.

Однако, с другой стороны, если ваш процессор имеет FPU, который не будет использоваться. Учитывая, что до ARMv8 не было никакой гарантии, что это будет поддерживаться (большинство ядер v7-A делали это, но ситуация намного сложнее, чем раньше), «максимальная совместимость» влечет за собой то, что любая связанная инструкция ссылается на glibc soft -fp библиотека (не путать с флагом softfp float-abi ), а не VFP.

И именно поэтому, в конечном итоге, Армф был создан. Пользовательское пространство снова не совместимо с ссылками, но вы получаете максимально возможную скорость.

What is difference between arm64 and armhf?

Raspberry Pi Type 3 has 64-bit CPU, but its architecture is not arm64 but armhf . What is the difference between arm64 and armhf ?

3 Answers 3

armhf stands for «arm hard float», and is the name given to a debian port for arm processors (armv7+) that have hardware floating point support.

On the beaglebone black, for example:

Although other commands (such as uname -a or arch ) will just show armv7l

The vfpv3 listed under Features is what refers to the floating point support.

Incidentally, armhf , if your processor supports it, basically supersedes Raspbian, which if I understand correctly was mainly a rebuild of armhf with work arounds to deal with the lack of floating point support on the original raspberry pi’s. Nowdays, of course, there’s a whole ecosystem build up around Raspbian, so they’re probably not going to abandon it. However, this is partly why the beaglebone runs straight debian, and that’s ok even if you’re used to Raspbian, unless you want some of the special included non-free software such as Mathematica.

Salim B's user avatar

argentum2f's user avatar

Update: Yes, I understand that this answer does not explain the difference between arm64 and armhf . There is a great answer that does explain that on this page. This answer was intended to help set the asker on the right path, as they clearly had a misunderstanding about the capabilities of the Raspberry Pi at the time of asking.

Where are you seeing that the architecture is armhf ? On my Raspberry Pi 3, I get:

Anyway, armv7 indicates that the system architecture is 32-bit. The first ARM architecture offering 64-bit support is armv8. See this table for reference.

You are correct that the CPU in the Raspberry Pi 3 is 64-bit, but the Raspbian OS has not yet been updated for a 64-bit device. 32-bit software can run on a 64-bit system (but not vice versa). This is why you’re not seeing the architecture reported as 64-bit.

You can follow the GitHub issue for 64-bit support here, if you’re interested.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *