64-bits.
More is always better, right?
Well, not exactly.
And that's why it's taken years for Raspberry Pi OS to add an officially-supported 64-bit
version, in addition to the 32-bit version they've had since the original Pi came out.
Since May 2020, there's been a beta 64-bit version of Pi OS, but it wasn't intended for
beginners, and was never linked from the main downloads page.
You had to kinda be 'in the know' to get it.
And the reason for that is it's actually branched directly off of Debian Linux and had a few
growing pains.
But almost all those problems have been ironed out now, and apparently it's time for the
Raspberry Pi's 64-bit era.
Yesterday Raspberry Pi announced the 64-bit version is finally official.
It's no longer hidden away in a crusty forum link, it's linked straight from their public
downloads page and the Raspberry Pi Imager.
Check out lee PSP's video that was posted yesterday for a guide on how to get it installed
on your Pi.
The 32-bit image is still listed first because it's still compatible with every Raspberry
Pi ever made—including this ancient first generation model B!
And it probably won't go away for a while either, because Raspberry Pi still supports
the Compute Module 1, which has the same processor, and that'll be supported until the end of
2026!
The 64-bit release is only compatible with more recent Pis, like the Pi 3 and Pi 4 generations,
as well as the Pi Zero 2 W. But what are some reasons you might wanna run 64-bit Pi OS?
Well, I've been running it on all my Pis since spring last year, and I'll tell you why.
The first one has to do with RAM.
If you have a Pi with less than 4 gigs of RAM—which is most of us, if I'm being honest,
It's really hard to find an 8 gig Pi right now.
But if you have less than 4 gigs of RAM, then memory isn't a huge concern and the 32-bit
OS should run fine.
But 32-bit OSes can't address more than 4 gigabytes of RAM without some weird hacks
like the one Pi OS uses, called 'Large Physical Address Extension'.
That allows the full 8 gigs to be addressed, but only up to 4 gigabytes for any single
process, like a Chromium browser tab.
That means for most applications, RAM is a non-issue.
But there are some cases, especially with servers or things like data processing, where
one process could use more than 4 gigs, and in those cases, you should definitely use
the 64-bit OS.
And for most people running a 64-bit OS won't cause any problems, except for maybe gobbling
up a little extra RAM.
You might not realize it, but 64-bit memory addresses actually take up a little more space
than 32-bit addresses, meaning you have a little less free RAM when you run a 64-bit
OS.
It's not a huge difference, but I tested both Lite images on my Pi Zero 2 with its measly
512 MB of RAM, and I saw 66 Mebibytes used on the 64-bit OS, but only 48 Mebibytes on
the 32-bit OS.
That's a 32% difference!
So if you're gonna run heavier apps, first of all, maybe don't do it on a tiny Pi Zero
2 W, and second, you should know the total memory usage will be a little higher when
you run it on a 64-bit OS.
I think that's the main reason why the 32-bit Pi OS is still listed first.
Raspberry Pi doesn't want people running out of memory on the newest Pi, the Pi Zero 2
W. I'm still a bit salty it doesn't have a full gig, but if you wanna know exactly what
I think, my review of the Pi Zero 2 W is linked in the card up there.
So RAM could be a factor depending on what you run on your Pis, and which Pi you run,
but that's not the primary reason I run the 64-bit version.
The biggest reason is software compatibility.
Outside the Pi and embedded computer ecosystems, almost nobody runs 32-bit operating systems
anymore.
Because of that, almost all modern software is built for 64-bit.
Some software is also built for 32-bit, but it only runs because of dedicated support
from Pi users or maintainers who still care about 32-bit support.
The problem is supporting 32-bits gets harder every year, especially as modern software
uses optimizations and libraries that might not even be tested on 32-bit processors!
As a concrete example, you can't install Elasticsearch anymore on 32-bit Pi OS.
So moving to a 64-bit operating system means a lot more things, from downloadable apps
to Docker images, run without any changes.
I think more and more projects that have been maintaining 32-bit support will probably be
dropping it as users transition to 64-bit Pi OS.
The last reason I prefer the 64-bit OS is because some of the software I run uses optimizations
that are only available on the newer processor architecture.
For example, the A64 instruction set has more and wider registers, and has some new instructions
that can speed up certain operations quite a bit.
The chip currently used by Raspberry Pi, this BCM2711, doesn't support everything, though.
For example, cryptography-related extensions aren't built into the hardware.
But for some specific things, you can get five to thirty percent faster performance
just by running an application with the 64-bit version.
Some 64-bit ARM instructions are even better for energy efficiency, too, so you get better
performance and use less power doing it!
But day-to-day use like booting up your Pi, browsing the web, or editing a document won't
see any impact.
But for people like me who run their Pis as servers, and run things like Kubernetes and
network utilities, it can make things a lot more efficient.
But running 64-bit Pi OS isn't all rainbows and butterflies, at least not yet.
There are still a few issues, for example, Widevine DRM is currently incompatible with
the 64-bit build of Chromium.
So if you wanna watch Netflix or Disney+ on your Pi, you have to manually install the
32-bit version of Chromium on 64-bit Pi OS.
The Pi blog post has instructions for doing that.
Though, to be honest, maybe broken DRM's a good excuse to protest DRM and find some other
source of entertainment.
Like maybe heading over to Red Shirt Jeff.com and buying a DNS shirt!
Sorry...
I couldn't resist.
There are also hardware video acceleration issues with 64-bit Pi OS that might slow down
video playback in some cases, but hopefully those'll be resolved soon.
In the end, I'd say basically if you run a modern 4th-generation Raspberry Pi, like the
Pi 4 model B, Pi 400, or Compute Module 4, go ahead and use the 64-bit Pi OS.
The downsides are minimal for almost everyone, and the wider usage will hopefully lead to
the final major bugs being squashed once and for all.
Moving forward, the 32-bit Pi OS will probably stick around until at least 2026, but then
my new question is, when will it switch places on the download list, making 64-bit the default?
After all, if there are ever new Pis with even more RAM or a newer processor and more
ARM 64-bit-only instructions, the 32-bit OS will become even more slow and more irrelevant!
Until next time, I'm Jeff Geerling.