Architecture 32-bit 64-bit
Intel x86 (PCs) x86, i386, i486 … i686 x86_64, amd64
ARM (mobile devices) armhf, armv7h arm64, aarch64

"aarch64" and "arm64" are the same thing. AArch64 is the official name for the 64-bit ARM architecture, but some people prefer to call it "ARM64" as a continuation of 32-bit ARM.

On the other hand, all 32-bit versions of ARM were called "arm"-something (there is no such thing as "aarch32"). See this other post and this one about the meaning of "armhf".

One of these names is very different – "amd64" is the original name for x86_64, which is the 64-bit version of the usual Intel/AMD x86 CPU architecture found on typical PCs and has nothing to do with ARM CPUs. (The 32-bit version originates from Intel and is always called "x86" or sometimes "i386", "i686", but never "amd32". Only the 64-bit extensions were created by AMD.)

Your Raspberry Pi 4 has a 64-bit ARMv8 CPU, so "aarch64"/"arm64" is the most suitable architecture for it, although it's capable of running an 32-bit "armv7h" OS as well. (Similar to how 64-bit amd64 PCs can still run a 32-bit x86 OS.)

Answer from grawity on Stack Exchange
Top answer
1 of 2
17
Architecture 32-bit 64-bit
Intel x86 (PCs) x86, i386, i486 … i686 x86_64, amd64
ARM (mobile devices) armhf, armv7h arm64, aarch64

"aarch64" and "arm64" are the same thing. AArch64 is the official name for the 64-bit ARM architecture, but some people prefer to call it "ARM64" as a continuation of 32-bit ARM.

On the other hand, all 32-bit versions of ARM were called "arm"-something (there is no such thing as "aarch32"). See this other post and this one about the meaning of "armhf".

One of these names is very different – "amd64" is the original name for x86_64, which is the 64-bit version of the usual Intel/AMD x86 CPU architecture found on typical PCs and has nothing to do with ARM CPUs. (The 32-bit version originates from Intel and is always called "x86" or sometimes "i386", "i686", but never "amd32". Only the 64-bit extensions were created by AMD.)

Your Raspberry Pi 4 has a 64-bit ARMv8 CPU, so "aarch64"/"arm64" is the most suitable architecture for it, although it's capable of running an 32-bit "armv7h" OS as well. (Similar to how 64-bit amd64 PCs can still run a 32-bit x86 OS.)

2 of 2
3

The ARM portion of this gets confusing quickly: Aarch64 is not actually the 64-bit ISA for ARM processors. Rather, it's an execution state introduced with ARMv8 that allows them to ACCESS the 64-bit ISA: A64.

Even more confusingly, this A64 ISA is entirely separate from the A32 (32-bit) ISA: A processor running in Aarch64 can't execute ARM32 instructions and vice-versa. The processor has to switch execution modes to leverage the appropriate ISA.

To summarize:

  • A64 - The ISA for 64-bit ARM processors.
  • Aarch64 - The 64-bit execution mode that provides access to the A64 ISA.
  • https://developer.arm.com/Architectures/A64%20Instruction%20Set%20Architecture
  • A32 - The ISA for 32-bit ARM processors (and 64-bit ARM processors in 32-bit mode).
  • Aarch32 - The 32-bit execution mode that provides access to the A32 ISA.
  • https://developer.arm.com/Architectures/A32%20Instruction%20Set%20Architecture

One last thing to note: I don't think Aarch32 actually became a thing until Aarch64 was introduced, which is why you'll see people saying it doesn't exist.

As grawity points out in their post: AMD64 is the "conventional" ISA for the 64-bit processors you've seen in nearly all PCs until recently. It was named after AMD because AMD created the original instruction set. x86 came from i386, which was developed by Intel. One thing to note: The standards are entirely separate from the companies that originally developed them at this point: i.e. AMD64 will work on Intel processors and vice versa.

🌐
OneUptime
oneuptime.com › home › blog › how to install ubuntu server on an arm64 (aarch64) machine
How to Install Ubuntu Server on an ARM64 (AArch64) Machine
March 2, 2026 - Ubuntu 24.04 LTS has a first-class ARM64 port with the same package set as x86_64. However, ARM hardware is more diverse than x86, and installation varies significantly depending on the platform. Unlike x86_64 where UEFI has standardized boot across all hardware, ARM64 platforms boot in different ways...
🌐
Reddit
reddit.com › r/ubuntu › transition from x86 to aarch64
r/Ubuntu on Reddit: Transition from x86 to aarch64
February 10, 2026 -

Hello,

I'm currently working on building a pocketable setup for running Ubuntu/Debian on my smartphone and cast the screen to my wireless android AR glasses.

I always used x86 but am considering to completely transition to aarch64/arm to leverage the mobile arm chipset as much as possible. (Virtualization on mobile chipsets partially supports x86, because mobile chipsets are arm based, so reducing overhead would be important. x86 would be possible but not on all chipsets and only with some overhead that I think is worth taking in account)

My concern is that I would have to find a lot of inconvenient workarounds because everything is built for x86, but not for arm. But arm would run natively on those powerful mobile chipsets.

What type of issues would I encounter? And what would be a solid long-term strategy to solve them?

I hope someone experienced can give me some advice.

🌐
Ubuntu
help.ubuntu.com › community › SupportedArchitectures
SupportedArchitectures - Community Help Wiki
August 8, 2024 - Ubuntu is currently officially compatible with five processor architectures - x86_64 (aka AMD64), ARM64 (aka AArch64), PowerPC64 (aka POWER), System z (aka S390X), and RISC-V.
🌐
Reddit
reddit.com › r/eclipse › what’s the difference between x86_64 and aarch64?
r/eclipse on Reddit: What’s the difference between x86_64 and AArch64?
October 26, 2022 -

Hi, I have Ubuntu 22.04 and my computer is 64 bit. I recently installed the Open JDK 11 that comes with Ubuntu and I want to install Eclipse as well. The two options are x86_64 and AArch64 but I don’t get what they are. I tried looking it up but I’m still lost. Is one version better suited for Ubuntu? I’m very new to all of this. Thank you in advance.

🌐
Medium
medium.com › @kv2023 › how-to-check-if-your-linux-is-arm64-or-x86-architecture-f0cd817fb266
How to Check If Your Linux Is ARM64 or x86 Architecture | by Kevin | Medium
May 26, 2024 - Open your terminal and type: uname -m · The output will indicate your system’s architecture: x86_64 means you are running a 64-bit x86 architecture. aarch64 means you are running a 64-bit ARM architecture.
Find elsewhere
🌐
Reddit
reddit.com › r/asm › are arm64 and aarch64 the same or thing?
r/asm on Reddit: Are ARM64 and AArch64 the same or thing?
January 15, 2023 -

Maybe this is a really basic question but I am just starting out with asm. and when I look at some videos about asm I can only find videos about AArch64 but never a bout arm64 I know I have arm architecture and I know I have 64 bit computer please correct me if the 64 in arm64 dosen’t stand for the number of bits in my computer the reason why I am asking this when they right some code in the video it always throws an error at my computer

🌐
Yoctopuce
yoctopuce.com › EN › article › using-our-libraries-under-linux-aarch64-or-arm64
Using our libraries under Linux aarch64 or arm64
December 21, 2018 - The answer is yes and no. We don't provide pre-compiled binaries for these platforms, so by default our libraries don't work. But you can recompile our libraries to make them work properly.
Top answer
1 of 1
20

Your question could be interpreted as pretty broad, but I think what you're actually asking about is extremely specific. The fundamental difference between the different implementations of arm64 vs. aarch64.

At the heart of your question is that different CPUs provide different instruction sets. I typically reference this Wikipedia page titled: List of instruction sets, since it's the most complete list I've ever seen on the Internet.

Instruction sets

At the heart of every microprocessor is a set of instructions that it can perform. The interface to the instruction sets is what compilers convert higher level programming languages, such as C/C++, down to machine code. This machine code is the instructions from a CPU's instruction set. Incidentally instructions in an instruction set typically look like this:

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

NOTE: You'll also hear machine code referred to as assembly language.

arm64 vs. aarch64

With these 2 architectures I was able to find this answer from SO: titled: Differences between arm64 and aarch64, which stated the difference as follows:

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.

Some of your questions

You're asking questions that are too numerous to answer in a single question. I'll try and answer the most important though.

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?

For the specifics on this, you'd have to ask the Arch community why they opt to do things within that project. In terms of your question about running Archlinuxarm built specifically for the 410c on a Raspberry Pi 3, my suggestion would be to try it.

Both of those CPUs are ARM processors as shown here:

So my expectation would be that you'd be able to use the same binaries on both. Lastly I'd likely as a follow-up question on the Raspberry Pi Stackexchange site. There are numerous questions along the lines of what you're asking there, for example:

  • What instruction set is used on the Pi's ARM/Broadcom chip?

References

  • Linux on AArch64 ARM 64-bit Architecture - LinuxCon 2012
  • Raspberry Pi 3 vs DragonBoard
🌐
Ragone.dev
ragone.dev › post › amd64-vs-arm64-linux
Comparing amd64 and arm64 Architectures: The State of Linux Applications — Ragone.dev
October 20, 2024 - Gaming: Most Linux gaming on Steam and Proton supports amd64 out of the box, though ARM64 is making strides in gaming as well. Containerization and virtual machines: Tools like Docker and VirtualBox have mature amd64 implementations. Growing ecosystem: More Linux distributions, such as Ubuntu, Fedora, and Arch Linux, are providing arm64 images, allowing ARM devices to run Linux smoothly.
🌐
Jensd's I/O buffer
jensd.be › 1126 › linux › cross-compiling-for-arm-or-aarch64-on-debian-or-ubuntu
Cross compiling for arm or aarch64 on Debian or Ubuntu | Jensd's I/O buffer
January 26, 2021 - For example, to use your standard PC, most likely x86, to build something that is usable on another machine or device that’s on another architecture, like ARM. In this post, I’ll explain how to do cross compiling for 32bit ARM (arm) or 64bit ARM (aarch64) using Debian 10 or Ubuntu 20.04 LTS.
🌐
Memgraph
memgraph.com › blog › ship-it-on-arm64-or-is-it-aarch64
Ship It on ARM64! Or Is It AARCH64?
July 14, 2022 - After reading through some documentation, and after reading even more documentation on naming conventions of Debian and RPM packages, we found that usually, the Debian packages have an arm64 suffix while RPM has an aarch64 suffix.
🌐
Ubuntu
documentation.ubuntu.com › server › how-to › installation › choosing-between-the-arm64-and-arm64-largemem-installer-options
Choose between the arm64 and arm64+largemem installer options - Ubuntu Server documentation
2 weeks ago - From 22.04.4 onward, Ubuntu will provide both 4k and 64k page size kernel ISOs for ARM servers. The default arm64 ISO will still use a 4k page size kernel, while the new 64k page size kernel ISO is...
🌐
Qt Forum
forum.qt.io › home › qt development › installation and deployment › using cross-compilation for arm64 in the ubuntu 24.04 x86 environment
Using cross-compilation for ARM64 in the Ubuntu 24.04 x86 environment | Qt Forum
March 10, 2025 - I have already resolved the issue and successfully cross-compiled for arm64 on Ubuntu 24.04 x86 using Qt6.8.2. I will provide my method. The configure command is as follows: ../Src/configure \ -prefix /home/ptc/Qt/6.8.2/arm64 \ -qt-host-path /home/ptc/Qt/6.8.2/gcc_64 \ -platform linux-g++ \ -device linux-aarch64-gnu-g++ \ -device-option CROSS_COMPILE=aarch64-linux-gnu- \ -no-opengl \ -skip qtopcua -skip qtwebengine -skip qtwebview -skip qtserialport -skip qtlocation \ -no-feature-brotli -no-feature-hunspell \ -- -DCMAKE_TOOLCHAIN_FILE=$HOME/Qt/6.8.2/toolchain/arm64-toolchain.cmake
🌐
Reddit
reddit.com › r/ubuntu › how do i use ubuntu on arm64?
r/Ubuntu on Reddit: How do I use Ubuntu on ARM64?
December 8, 2025 -

Hey, can anyone help me? I've been trying for hours to install Linux on my notebook, the problem is that it's ARM64 architecture, I saw that Ubuntu is compatible with ARM, but when I try to start it on my notebook, the screen goes blank, I'm trying to boot with Ventoy