I need to download the last version of the OS and now there are 3 basic versions to choose from.
The problem is that for a noob user like me it is not obvious which one is the right one for me.
I think it would be very helpful for the users a bit more explanation about the versions or a table showing the differences.
First, what is the ARMv6, ARMv7, and ARMv8 means? Versions of the OS or the ARM processor? Why there is 3 version?
Second, the Raspbian and the Debian package, what are the differences? What are the differences and advantages?
And last, 32 and 64 bits. What are the differences and advantages? How to know if my programs have 64 version? Does 32 programs still working on the 64bit OS?
If anyone could answers my questions I would be very grateful.
Can you share the SBC you like to use?
Device model : RPi 3 Model B (aarch64)
I choose the ARMv8 64-bit.
There are some hints displayed, which version is compatible with which device.
The ARM version is the microprocessor architecture of your device. The versions are downwards compatible, so a device with version 8 has all the features from previous versions and could be run with images for this previous versions.
- RPi 1 and Zero / Zero W/WH are v6, they can only use the ARMv6 image.
- RPi 2 mod B is ARMv7, it can use v6 and v7 iamges.
- Every other RPi (Zero 2 W, 2 Mod. B v1.2, every RPi 3 and the RPi 4) are ARMv8 and they can use every availabe image.
The most interesting difference is, that processes on a 64bit system can use more than 4GB of RAM. This is only important for the RPi 4 8GB. Also todays software is mostly written for 64bit architecture I think, but current architectures like ARMv8 can also execute 32bit software. But this legacy support will be dropped in the future with newer ARM processores / newer ARM architecture versions. On software level the compatibility of 32bit software for 64bit systems is only optional, so the software developer has to assure this compatibily. Honestly I don’t know how far this compatibility is supported or how much 32bit software is left today in the “linux world”. But if you look at current Linux distributions, almost all are 64bit today.
It’s planned already to put the three ARM image versions into three download tiles, one for RPi 1 + Zero (ARMv6), one for RPi 2 (ARMv7) and one for all other RPi models (ARMv8), which should make it easier to decide. This matches the now reasonable recommendation while of course ARMv6/7 OS runs one 64-bit RPi models as well.
I’ll work on this the next days.
EDIT: With 32-bit image one can use 8 GiB RAM as well, such limitation does not exist on Linux. But a single process isn’t able to use more than 3 GiB on 32-bit.
That’s perfectly fine.