Відмінності між arm64 та aarch64


86

У мене є два «розблоковані» пристрої, iPad mini 3 та Galaxy Edge 6, обидва наділені терміналом та мінімалістичним набором команд unix. Я думав, що обидва пристрої мають процесори arm64, але коли я побіг

на обох пристроях я отримав таке:

для iPad mini 3:

для Samsung Galaxy s6 Edge:

Якщо я не помиляюся, остання інформація в обох випадках, J85mAP та GNU / Linux, означає прошивки, а попередня інформація, arm64 та aarch64, - процесори.

Мої запитання такі: очевидно, рядки "arm64" і "aarch64" не однакові, але я завжди думав, що arm64 і aarch64 однакові. (Це навіть сказано, коли ви ставите тег arm64 до питання тут.)

Отже, чи справді вони ідентичні?

Особливо, про що мені турбуватися у випадку перехресного побудови бібліотек для обох цілей? Насправді я маю на увазі gcc 5.2.0, але, можливо, і нижчі версії. Чи можу я просто пройти

або

відповідно до того, на який пристрій я націлююсь і просто хвилююся щодо решти параметрів для налаштування?

EDIT Hum, шукайте це ще раз, без успіху.

Відповіді:


67

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 стосуються одного і того ж.


57

Здається, ARM64 був створений Apple, а AARCH64 - іншими, особливо хлопцями GNU / GCC.

Після гуглиння я знайшов це посилання:

Злилися попередні кінці LLVM 64-розрядних ARM64 / AArch64

Тому має сенс, iPad називає себе ARM64, оскільки Apple використовує LLVM, а Edge використовує AARCH64, як Android використовує GNU GCC toolchain.


Thx за цю відповідь. Отже, принаймні теоретично, для перехресного компілювання gcc з mac os або ubuntu на ipad чи edge, я не повинен насправді турбуватися про параметр -target, переданий сценарію налаштування, за умови, що він є одним серед arm64 і aarch64?
Olorin

6
Хоча я не маю нічого нового додати до вищезазначеної інформації, я хотів би виділити слайд 10 подій.linuxfoundation.org/images/stories/pdf/… - Він підкреслює, як ядро ​​Linux посилається на AARCH64 під іменами ARM64. Отже, при перехресному побудові двійкових файлів, які потребують підтримки заголовків ядра Linux, ймовірно, ARCH = arm64 буде правильним - навіть незважаючи на те, що ціль - "aarch64".
Шрей

3
Ваша відповідь правильна. Зобов'язання дзвону для цього ARM64 / AArch64 злиття досить просто. arm64 та aarch64 для більшості цілей виглядають синонімами.
Gabriel Parent
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.