Qual é a diferença entre a implementação diferente de arm64 / aarch64 para Linux ou outro software para rodar? [fechadas]

1

Para a arquitetura da arquitetura x86_64, não importa se ela é fabricada pela Intel, AMD ou VIA. O software para esta arquitetura pode ser executado corretamente.

No entanto, como para arm64 / aarch64 (a diferença de arm64 / aarch64 é aqui ), existem muitos fornecedores. Para distribuições Linux para arm64 / arch64, há muita orientação.

Aqui é a lista de plataformas de suporte de braço do Arch Linux ARM.

Mas para o Debian , não há tantas opções (apenas o arm64 e o little endian lá é apenas armel).

Q1. Qual é a diferença entre essas plataformas de suporte do Archlinuxarm?

Para descobrir o primeiro trimestre, uso meu celular para testá-lo. A arquitetura do meu celular é o arm64v7el (4 * ARMCortex-A73 + 4 * ARMCortex-A53). Eu baixei Archlinuxarm para armv7 - Raspberry Pi 2 . E extraia o arquivo .tar.gz para uma pasta no diretório home do Termux.

Então abro o Termux e digito:

proot -r /path/to/my/archlinuxarm/rootfolder/

Infelizmente, diz-se que o interpretador de shell não é executável (em arquitetura diferente).

Talvez seja porque a diferença de Endian. No entanto, para o armv8, há uma opção de download do archlinuxarm, que é Genérico .

Q2. Se eu instalar um sistema archlinuxarm para plataforma A para plataforma B. Não pode ser otimizado ao máximo ou completamente não compatível?

Q3. Há distribuição para diferentes plataformas apenas diferentes em seu driver ou a diferença de parâmetros ao compilar os kernels do Linux?

Q4. O que me deixa confuso é a razão pela qual a comunidade archlinuxarm não fornece tarball de rootfs de estágio apenas para o armel arm64 e etc., em vez de produtos diferentes de fornecedores diferentes? Isso significa que, por exemplo, o conjunto de instruções no DragonBoard 410c é diferente do Raspberry Pi 3? Ou em outras palavras, se eu instalar o Archlinuxarm para o DragonBoard 410c para o Raspberry Pi 3, o que acontecerá? Pode inicializar corretamente?

    
por davmos 08.08.2018 / 01:26

1 resposta

1

Sua pergunta pode ser interpretada como bastante ampla, mas acho que o que você está realmente perguntando é extremamente específico. A diferença fundamental entre as diferentes implementações de arm64 vs. aarch64.

No centro da sua pergunta, diferentes processadores fornecem conjuntos de instruções diferentes. Eu normalmente faço referência a esta página da Wikipédia intitulada: Lista de conjuntos de instruções , já que é a lista mais completa que já vi na Internet.

Conjuntos de instruções

No coração de cada microprocessador há um conjunto de instruções que ele pode executar. A interface para os conjuntos de instruções é o que compiladores convertem linguagens de programação de nível superior, como C / C ++, até código de máquina. Este código de máquina é as instruções do conjunto de instruções da CPU. Aliás instruções em um conjunto de instruções normalmente se parecem com isso:

x86 nasm - link
    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

OBSERVAÇÃO: você também ouvirá o código da máquina referido como linguagem assembly.

arm64 vs. aarch64

Com essas duas arquiteturas, consegui encontrar essa resposta do SO: intitulado: Diferenças entre arm64 e aarch64 , que declarou a diferença da seguinte forma:

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.

Algumas de suas perguntas

Você está fazendo perguntas muito numerosas para responder em uma única pergunta. Vou tentar responder o mais importante, no entanto.

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?

Para os detalhes sobre isso, você teria que perguntar à comunidade do Arch por que eles optaram por fazer as coisas dentro desse projeto. Em termos de sua pergunta sobre como rodar o Archlinuxarm construído especificamente para o 410c em um Raspberry Pi 3, minha sugestão seria tentar.

Ambos os processadores são processadores ARM, como mostrado aqui:

Portanto,minhaexpectativaéquevocêpossausarosmesmosbináriosemambos.Porúltimo,euprovavelmentecomoumaperguntadeacompanhamentonositeRaspberryPiStackExchange.Existeminúmerasperguntasaolongodaslinhasdoquevocêestáperguntando,porexemplo:

  • Qual conjunto de instruções é usado no chip ARM / Broadcom do Pi?

Referências

por 08.08.2018 / 04:10