Linux用arm64 / aarch64またはここで実行されている他のソフトウェアのさまざまな実装の違いは何ですか? [閉鎖]

Linux用arm64 / aarch64またはここで実行されている他のソフトウェアのさまざまな実装の違いは何ですか? [閉鎖]

x86_64 アーキテクチャ CPU の場合、Intel、AMD、または VIA かどうか。このアーキテクチャのソフトウェアは正常に実行できます。

ただし、arm64/aarch64の場合(arm64/aarch64の違いはここ)、サプライヤーが多いです。 arm64/arch64 Linuxディストリビューションにはいくつかの方向があります。

ここArch Linux ARM の arm サポートプラットフォームのリストです。

それ以外の場合ダーバン、それほど多くの選択肢ではありません(arm64のみ、リトルエンディアンはarmelのみ)。

Q1. Archlinuxarmがサポートするプラットフォームの違いは何ですか?

Q1を調べるために携帯電話で試してみました。私の携帯電話のアーキテクチャはarm64v7el(4 * ARMCortex-A73 + 4 * ARMCortex-A53)です。私はダウンロードしますArmv7用Archlinuxarm - ラズベリーパイ2。次に、.tar.gzファイルをTermuxホームディレクトリのフォルダに抽出します。

次にTermuxを開き、次のように入力しました。

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

残念ながら、シェルインタプリタは(他のアーキテクチャでは)実行可能ではないと言われています。

おそらくこれはエンディアンの違いによるものです。しかし、armv8にはarchlinuxarmのダウンロードオプションがあります。一般的な

Q2.プラットフォームAからプラットフォームBにArchlinuxarmシステムをインストールする場合、最適化を最大化することは不可能ですか、それとも完全に互換性がありませんか?

Q3. Linuxカーネルをコンパイルするとき、異なるプラットフォームの配布バージョンには異なるドライバまたはパラメータしかありませんか?

Q4.私を混乱させるのは、なぜArchlinuxarmコミュニティが他のベンダーの他の製品の代わりにarm64、armelなどにのみステージrootfsタールボールを提供しないのですか?これは、DragonBoard 410cのコマンドセットがRaspberry Pi 3と異なることを意味しますか?つまり、DragonBoard 410c用ArchlinuxarmをRaspberry Pi 3にインストールするとどうなりますか?正常に起動できますか?

ベストアンサー1

あなたの質問は非常に広範なものとして解釈されるかもしれませんが、実際に質問するものは非常に具体的であると思います。 arm64とaarch64のさまざまな実装の基本的な違い。

問題の鍵は、異なるCPUが異なる命令セットを提供することです。私は通常、次のタイトルのウィキペディアページを引用します。命令セット一覧これは、私がインターネットで見たリストの中で最も完全なリストだからです。

命令セット

すべてのマイクロプロセッサの中核は、実行可能な命令セットです。命令セットのインタフェースは、コンパイラが高度なプログラミング言語(C / C ++など)を機械語コードに変換するために使用するインタフェースです。この機械語コードは CPU 命令セットの命令です。ちなみに、命令セットの命令は一般的に次のようになります。

x86 NASM -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は64ビット状態で導入されました。Armv8-Aアーキテクチャ。 Armv7-A および以前の 32 ビット Arm アーキテクチャと逆互換の 32 ビット状態を AArch32 と呼びます。したがって、64ビットISA用のGNU三重項はaarch64です。 Linuxカーネルコミュニティは、カーネルをaarch64の代わりにこのアーキテクチャに移植することを決めたため、arm64の使用の一部がここで発生します。

私が知る限り、Appleのaarch64バックエンドはarm64と呼ばれ、LLVMコミュニティによって開発されたバックエンドはaarch64と呼ばれます(これは64ビットISAの標準名であるため)。後で2つがマージされ、現在のバックエンドはaarch64と呼ばれます。 。

したがって、aarch64とarm64は同じものを参照します。

あなたの質問のいくつか

1つの質問で答えるには、あまりにも多くの質問があります。最も重要な質問に答えようとします。

Q4.私を混乱させるのは、なぜArchlinuxarmコミュニティが他のベンダーの他の製品の代わりにarm64、armelなどにのみステージrootfsタールボールを提供しないのですか?これは、DragonBoard 410cのコマンドセットがRaspberry Pi 3と異なることを意味しますか?つまり、DragonBoard 410c用ArchlinuxarmをRaspberry Pi 3にインストールするとどうなりますか?正常に起動できますか?

これについて詳しくは、Archコミュニティにプロジェクトで特定のタスクを選択した理由を尋ねる必要があります。 Raspberry Pi 3で410c用に構築されたArchlinuxarmの実行に関するアドバイスは、試してみることです。

以下のように、両方のCPUはARMプロセッサです。

SS1

したがって、私の期待は、両方で同じバイナリを使用できることです。最後に、Raspberry Pi Stackexchangeサイトにフォローアップの質問をすることもできます。あなたの要件に応じて、次のような多くの質問があります。

引用する

おすすめ記事