В чем разница между различными реализациями arm64 / aarch64 для Linux или другого программного обеспечения для работы? [закрыто]

Также вы можете сделать это:

$ a=(a b c d e f)
$ echo ${a[$(expr ${#a[@]} - 1)]}

Результат:

$ f

То, что вы делаете, это получаете все количество элементов в массиве и вычитаете -1, потому что вы получаете все элементы, а не начинаете с индекса массива, который равен 0.

7
08.08.2018, 05:22
1 ответ

Ваш вопрос может быть истолкован как довольно широкий, но я думаю, что то, о чем вы на самом деле спрашиваете, очень конкретно. Принципиальная разница между разными реализациями arm64 и aarch64.

Суть вашего вопроса в том, что разные процессоры предоставляют разные наборы инструкций. Обычно я ссылаюсь на эту страницу Википедии под названием:Список наборов инструкций , так как это самый полный список, который я когда-либо видел в Интернете.

Наборы инструкций

В основе каждого микропроцессора лежит набор инструкций, которые он может выполнять. Интерфейс к наборам инструкций — это то, что компиляторы преобразуют языки программирования более высокого уровня, такие как C/C++, в машинный код. Этот машинный код представляет собой инструкции из набора инструкций ЦП. Кстати, инструкции в наборе инструкций обычно выглядят так:

х86 насм-https://rosettacode.org/wiki/Bitwise_operations#x86_Assembly
    extern printf
    global main

    section.text
main
    mov eax, dword [_a]
    mov ecx, dword [_b]
    push    ecx
    push    eax

    and     eax, ecx
    mov ebx, _opand
    call    out_ops

ПРИМЕЧАНИЕ.:Вы также услышите, что машинный код называется языком ассемблера.

arm64 против aarch64

С этими двумя архитектурами я смог найти этот ответ от SO :под названием:Различия между arm64 и aarch64 , в котором указано следующее различие:

AArch64 is the 64-bit state introduced in the Armv8-A architecture. The 32-bit state which is backwards compatible with Armv7-A and previous 32-bit Arm architectures is referred to as AArch32. Therefore the GNU triplet for the 64-bit ISA is aarch64. The Linux kernel community chose to call their port of the kernel to this architecture arm64 rather than aarch64, so that's where some of the arm64 usage comes from.

As far as I know the Apple backend for aarch64 was called arm64 whereas the LLVM community-developed backend was called aarch64 (as it is the canonical name for the 64-bit ISA) and later the two were merged and the backend now is called aarch64.

So aarch64 and arm64 refer to the same thing.

Некоторые из ваших вопросов

Вы задаете слишком много вопросов, чтобы ответить на них одним вопросом. Но я постараюсь ответить на самое важное.

Q4. What makes me confused is the reason why archlinuxarm community doesn't provide stage rootfs tarball for only arm64 armel and etc. instead of different vendors' different products? Is it means that for example instruction set in DragonBoard 410c is different from Raspberry Pi 3? Or in other word, If I install Archlinuxarm for DragonBoard 410c to Raspberry Pi 3, What will happen? Can it boot properly?

Чтобы узнать подробности, вы должны спросить сообщество Arch, почему они решили делать что-то в рамках этого проекта. Что касается вашего вопроса о запуске Archlinuxarm, созданного специально для 410c, на Raspberry Pi 3, я бы посоветовал попробовать.

Оба этих ЦП являются процессорами ARM, как показано здесь:

ss1

Итак, я ожидаю, что вы сможете использовать одни и те же двоичные файлы на обоих. Наконец, я бы, вероятно, ответил на -вопрос на сайте Raspberry Pi Stackexchange. Есть множество вопросов по поводу того, что вы там задаете, например:

Ссылки

16
27.01.2020, 20:18

Теги

Похожие вопросы