dav*_*mos 15 linux arm arch-arm
对于x86_64架构的CPU,不管是Intel、AMD还是VIA。该架构的软件可以在其上正常运行。
但是,对于arm64/aarch64(arm64/aarch64的区别在这里),有很多厂商。对于 arm64/arch64 的 Linux 发行版,有很多方向。
这是 Arch Linux ARM 的 arm 支持平台列表。
但是对于Debian,没有这么多的选择(只有 arm64 而对于 little endian 只有 armel)。
一季度。Archlinuxarm 的支持平台有什么区别?
为了弄清楚Q1,我用我的手机试了一下。我的手机架构是arm64v7el(4*ARMCortex-A73+4*ARMCortex-A53)。我为 armv7 - Raspberry Pi 2下载Archlinuxarm。并将 .tar.gz 文件解压到 Termux 主目录中的文件夹中。
然后我打开 Termux 并输入:
proot -r /path/to/my/archlinuxarm/rootfolder/
Run Code Online (Sandbox Code Playgroud)
不幸的是,据说 shell 解释器是不可执行的(在不同的体系结构中)。
也许,是因为Endian的不同。但是,对于 armv8,有一个 archlinuxarm 的下载选项,它是Generic。
Q2。如果我为A平台安装一个archlinuxarm系统到B平台。是不能最大程度优化还是完全不兼容?
Q3。是否有不同平台的发行版只是驱动程序不同或编译Linux内核时参数不同?
第 4 季度。令我困惑的是,archlinuxarm 社区为什么不提供仅针对 arm64 armel 等的 stage rootfs tarball 而不是不同供应商的不同产品?这是否意味着例如 DragonBoard 410c 中的指令集与 Raspberry Pi 3 不同?或者换句话说,如果我将用于 DragonBoard 410c 的 Archlinuxarm 安装到 Raspberry Pi 3,会发生什么?能正常开机吗?
slm*_*slm 15
您的问题可能被解释为非常广泛,但我认为您实际问的问题非常具体。arm64 与 aarch64 的不同实现之间的根本区别。
您问题的核心是不同的 CPU 提供不同的指令集。我通常会参考这个名为:指令集列表 的维基百科页面,因为它是我在 Internet 上见过的最完整的列表。
每个微处理器的核心是一组它可以执行的指令。指令集的接口是编译器将高级编程语言(例如 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
Run Code Online (Sandbox Code Playgroud)
注意:您还会听到称为汇编语言的机器代码。
使用这两种架构,我能够从 SO 中找到这个答案:标题为:arm64 和 aarch64 之间的差异,其中说明差异如下:
AArch64 是Armv8-A 架构中引入的 64 位状态。向后兼容 Armv7-A 和以前的 32 位 Arm 架构的 32 位状态称为 AArch32。因此 64 位 ISA 的 GNU 三元组是 aarch64。Linux 内核社区选择将他们的内核端口调用到这个架构 arm64 而不是 aarch64,所以这就是一些 arm64 用法的来源。
据我所知,aarch64 的 Apple 后端称为 arm64,而 LLVM 社区开发的后端称为 aarch64(因为它是 64 位 ISA 的规范名称),后来两者合并,后端现在称为 aarch64 .
所以 aarch64 和 arm64 指的是同一个东西。
您提出的问题太多而无法在一个问题中回答。不过,我会尝试回答最重要的问题。
第 4 季度。令我困惑的是,archlinuxarm 社区为什么不提供仅针对 arm64 armel 等的 stage rootfs tarball 而不是不同供应商的不同产品?这是否意味着例如 DragonBoard 410c 中的指令集与 Raspberry Pi 3 不同?或者换句话说,如果我将用于 DragonBoard 410c 的 Archlinuxarm 安装到 Raspberry Pi 3,会发生什么?能正常开机吗?
对于这方面的细节,您必须询问 Arch 社区为什么他们选择在该项目中做事。关于在 Raspberry Pi 3 上运行专为 410c 构建的 Archlinuxarm 的问题,我的建议是尝试一下。
这两个 CPU 都是 ARM 处理器,如下所示:
所以我的期望是你可以在两者上使用相同的二进制文件。最后,我可能会在 Raspberry Pi Stackexchange 站点上提出后续问题。您在那里提出的问题有很多问题,例如: