64-Bit Raspberry Pi OS Arrives For Hardware You Can’t Get
The Pi 3, Pi 4, And Pi Zero 2 W, In All Flavours Can Now Run A 64-Bit OS
The Raspberry Pi has included a 64-bit processor since the release of the original Pi 3 in 2016 but Raspberry Pi OS has only been 32-bit until now. Some brave souls have been beta testing a 64-bit version for quite some time and today the RasPi community should thank them for all their work as a 64-bit version of the Raspberry Pi OS officially launched.
This change will increase the pool of software you will be able to run on your Raspberry Pi as the vast majority of newer applications are only compatible with ARM64. There are certainly exceptions, though even they are optimized for a 64-bit OS and do not run as efficiently on a 32-bit OS. This also increases the amount of RAM the ARM processor can address from the 3GB maximum that the LPAE feature allowed, making your Pi even more capable.
Of course, currently we are not allowed to have nice things, as anyone who has been shopping for a RasPi can attest to. Stocks of the various models are depleted and orders for new boards are expected to take several months to fulfill. Once the chip shortage is behind us however, that 64-bit Raspberry Pi OS is going to extend the capabilities of your next project significantly.
The most significant benefit of the 64-bit switch will be software compatibility, since as the Pi Foundation notes, "many closed-source applications are only available for ARM64," and open source apps aren't always fully optimized for the instruction set that the 32-bit Pi OS uses.
More Tech News From Around The Web
- Chromecast, Fire TV Stick, or Roku: What’s the best streaming stick for ~$50? @ Ars Technica
- NordVPN and Surfshark Are Merging, Continuing VPN Consolidation Trend @ Slashdot
- Back up for a minute – Backblaze HD reliability stats show oldies can be goodies @ The Register
- SpaceX Rolls Out Premium Starlink Satellite Internet Tier at $500 Per Month @ Slashdot
64 bit mode has a lot of other benefits on ARM as well. The FPU (NEON) has twice as many registers in 64 bit mode and they’re twice as big. This can lead to a >2x speedup for some programs.
The flip side is that some programs will be larger if programs are dumb about their use of pointers and data types as those can double in size. They don’t have to double as AARCH64 supports 32 bit pointers and data types as well as 64. But if a program doesn’t go out of its way to use them, they may end up using 64 bit types instead. This can make the already memory starved 1GB Rpi boards a bit tighter on memory. The Rpi 4 and 400 should be fine though as they have 2/4/8 GB of memory instead.
One clarification of what LPAE does is it allows each 32 bit process to access 3GB of space, but that may be mapped to parts of a much larger main memory. But each *process* may only use 3GB of memory at a time. But you can have two different processes each using a different 3GB of memory at the same time. Before it was limited to 2GB virtual of the 4GB physical memory. So, before LPAE you had a 32bit virtual space (some of that was fixed to be unuseable as normal storage) and a 32bit physical address space (some of that was used by peripherial registers, etc.) to a 32bit virtual (with only 1GB unuseable) of a 40bit physical memory space. Much like Intel’s PAE did back in the Pentium Pro.
Note that going to 64 bit on the Zero 2 W with its tiny 512MB of DRAM is probably a bad idea unless you have a specific task that you know will fit into it despite the penalties of 64 bittedness *and* makes use of the benefits that 64 bit mode offers.
There may be jobs like that (DSP kind of stuff, maybe), but as a general rule, you’re going to want to avoid 64 bit on anything less than an Rpi4/400 level board.
Thanks for the follow up, good info in this that I didn’t include. I also totally forgot the Zero 2 W only had 512MB!