arm64 和 armhf 有什么区别?

What is difference between arm64 and armhf?

Raspberry Pi Type 3 有 64 位 CPU,但它的体系结构不是 arm64 而是 armhfarm64armhf 有什么区别?

Update:是的,我明白这个答案没有解释arm64armhf之间的区别。在这个页面上有一个很好的答案可以解释这一点。这个答案旨在帮助提问者走上正确的道路,因为他们在提问时显然对 Raspberry Pi 的功能有误解。

您在哪里看到架构是 armhf?在我的 Raspberry Pi 3 上,我得到:

$ uname -a
armv7l

总之,armv7说明系统架构是32位的。第一个提供 64 位支持的 ARM 架构是 armv8。请参阅此 table 以供参考。

Raspberry Pi 3 中的 CPU 是 64 位是正确的,但是 Raspbian OS 尚未更新为 64 位设备。 32 位软件可以在 64 位系统上 运行(但反之则不行)。这就是为什么您没有看到报告为 64 位的架构。

如果您有兴趣,可以关注 GitHub 问题以获得 64 位支持 here

armhf 代表 "arm hard float",是为具有硬件浮点支持的 arm 处理器 (armv7+) 赋予 a debian port 的名称。

关于beaglebone black,例如:

:~$ dpkg --print-architecture
armhf

虽然其他命令(例如uname -aarch)只会显示armv7l

:~$ cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 995.32
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls
...

Features下面列出的vfpv3是指floating point support.

顺便说一句,armhf,如果您的处理器支持它,基本上会取代 Raspbian,如果我理解正确的话,mainly a rebuild of armhf原始 raspberry pi 缺少浮点支持。现在,当然,围绕 Raspbian 建立了一个完整的生态系统,所以他们可能不会放弃它。然而,这就是 beaglebone 直接运行 debian 的部分原因,即使您习惯了 Raspbian 也没关系,除非您想要一些特殊的 non-free 软件,例如 Mathematica。

了解哪些命令报告您的内核软件架构,哪些命令涉及硬件,这一点很重要。直到最近,Raspberry Pi 没有写 64 位 OS 版本,所以 64 位硬件 3b+ for example, ran a 32-bit OS. This can lead to some confusion when you run commands to print architecture. Don't draw the wrong conclusion, though. You'll notice on the Raspberry Pi OS release page 新的 64 位版本与旧的 Pi 3 硬件兼容,其中有 64位 ARM 处理器。