| 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| 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.)
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.
"AArch64" and "ARM64" refer to the same thing.
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.
The Apple-developed 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). The two were merged in 2014 and the backend now is called "AArch64".
It seems that ARM64 was created by Apple and AARCH64 by the others, most notably GNU/GCC guys.
After some googling I found this link:
The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged
So it makes sense, iPad calls itself ARM64, as Apple is using LLVM, and Edge uses AARCH64, as Android is using GNU GCC toolchain.
I've tried running the eclipse IDE on a linux system emulated in termux, but it didn't work due to the architecture. So is that possible? (Don't suggest qemu, it is very unstable and laggy on android)
P.S Sorry for bad English
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.
See Differences between arm64 and aarch64. AArch64 and arm64 are the same thing. Does executing the binary not work for you?
These are the simple steps, Please try with these steps.
dpkg --add-architecture armhf
apt-get update (ignore the missing x386 packages and hope for the best)
apt-get install libc6:armhf libstdc++6:armhf
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.
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
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
