Различия между arm64 и aarch64
У меня есть два "разблокированных" устройства: iPad mini 3 и Galaxy Edge 6, оба имеют терминал и минималистичный набор команд unix. Я думал, что оба устройства имеют процессоры arm64, но когда я запустил
uname -a
на обоих устройствах я получил следующее:
для iPad mini 3:
xxxxs-iPad:/var/mobile root# uname -a
Darwin xxxx-iPad 14.0.0 Darwin Kernel Version 14.0.0: Wed Jun 24 00:50:15 PDT 2015; root:xnu-2784.30.7-30/RELEASE_ARM64_S5L8960X iPad4, **arm64**, J85mAP
для Samsung Galaxy s6 Edge:
[email protected]:/ $ uname -a
Linux localhost 3.10.61-4497415 #1 SMP PREEMPT Thu Apr 9 15:06:40 KST 2015 **aarch64** GNU/Linux
Если я не ошибаюсь, последняя информация в обоих случаях, J85mAP и GNU/Linux, относится к прошивкам, а antepenultimate infos, arm64 и aarch64 - для процессоров.
Мои вопросы заключаются в следующем: очевидно, строки "arm64" и "aarch64" не совпадают, но я всегда думал, что arm64 и aarch64 были одинаковыми. (Он даже сказал, когда вы положили тег arm64 на вопрос здесь.)
Итак, действительно ли они идентичны?
В частности, о чем я должен беспокоиться в случае библиотек перекрестного построения для обеих целей? На самом деле, у меня есть gcc 5.2.0, но, возможно, и более низкие версии. Могу ли я просто пройти
-target=arm64
или
-target=aarch64
в зависимости от того, какое устройство я нацелен и просто беспокоюсь о остальных параметрах для настройки?
ИЗМЕНИТЬ Хм, ищите это снова, без успеха.
Ответы
Ответ 1
Кажется, что ARM64 был создан Apple и AARCH64 другими, в первую очередь парнями GNU/GCC.
После некоторого googling я нашел эту ссылку:
Объединенные 64-разрядные ARM64/AArch64 LLVM объединились
Итак, это имеет смысл, iPad называет себя ARM64, поскольку Apple использует LLVM, а Edge использует AARCH64, поскольку Android использует GNU GCC toolchain.
Ответ 2
AArch64 - это 64-битное состояние, представленное в архитектуре Armv8-A (https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A). 32-битное состояние, обратно совместимое с Armv7-A и предыдущими 32-битными архитектурами Arm, называется AArch32. Поэтому триплет GNU для 64-битного ISA - это aarch64. Сообщество разработчиков ядра Linux предпочло назвать свой порт ядра этой архитектурой arm64, а не aarch64, так что откуда происходит некоторое использование arm64.
Насколько я знаю, бэкэнд Apple для aarch64 назывался arm64, тогда как бэкэнд, разработанный сообществом LLVM, назывался aarch64 (так как это каноническое имя для 64-битного ISA), а затем оба были объединены, а бэкэнд теперь называется aarch64.,
Таким образом, aarch64 и arm64 относятся к одному и тому же.
Ответ 3
на самом деле яблоко ppc64 было ppc64/PPC64, и, например, для компиляции Gridcoin под Debian после портирования потребовалось 1 5 символов дополнительного кода после патча Android/pi/adrino только с aarch64 и AARCH64. Было больше кодов, но сообщество Gridcoin является кликой из 8, следовательно, это отсутствие значения в 2 раза меньше, чем 2 года назад, когда взломанный русским 4 июля 2017 года, когда он поднялся до небес, а затем был закачан и не восстановился. У меня есть Sun Ultra 80, на которую я собирался портировать, Caraka, который является "Лидером сообщества Trusted", известной как часть GRC8, попросил сообщество, у которого есть оборудование, отличное от x86, портировать, чтобы исходный код функционировал как реальный исходный код и компилировался. на любой платформе и архитектуре.
Arm не нов, он просто переименован в MIPS.