Coder Perfect

What is the difference between the arm64 and armhf architectures?


Although the Raspberry Pi Type 3 features a 64-bit CPU, its architecture is armhf rather than arm64. What’s the difference between the arm64 and armhf architectures?

Asked by furushchev

Solution #1

Armhf is the moniker given to a debian port for arm processors (armv7+) with hardware floating point capabilities.

For example, on the black beaglebone:

:~$ dpkg --print-architecture

Other commands, such as uname -a or arch, will only display 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

The floating point support is shown by the vfpv3 mentioned under Features.

In addition, assuming your processor supports it, armhf effectively supersedes Raspbian, which, if I recall correctly, was primarily a rebuild of armhf with workarounds to deal with the absence of floating point support on the first Raspberry Pis. Of course, there’s an entire ecosystem built up around Raspbian these days, so they’re unlikely to quit it. However, this is one of the reasons why the Beaglebone runs Debian, which is OK even if you’re used to Raspbian, unless you want some of the non-free software included, such as Mathematica.

Answered by argentum2f

Solution #2

Yes, I realize that this response does not explain the distinction between arm64 and armhf. On this page, there is a fantastic answer that explains everything. This answer was intended to help set the asker on the right path, as they clearly had a misunderstanding about the capabilities of the Raspberry Pi at the time of asking.

Where do you think you’re seeing armhf architecture? I receive the following on my Raspberry Pi 3:

$ uname -a

In any case, armv7 denotes a 32-bit system architecture. Armv8 was the first ARM architecture to support 64-bit computing. This table can be used as a guide.

Although the Raspberry Pi 3’s CPU is 64-bit, the Raspbian operating system has not yet been updated to support it. A 64-bit system can run 32-bit software (but not vice versa). This explains why the architecture isn’t listed as 64-bit.

If you’re interested, you can follow the 64-bit support GitHub issue here.

Answered by Francesca Nannizzi

Post is based on