What does Apple Silicon mean for the Raspberry Pi and ARM64?

Note: There's a video version of this blog post available here: What does Apple Silicon mean for the Raspberry Pi and ARM64?

Apple Silicon and the Raspberry Pi

A couple weeks ago I tried using the latest Raspberry Pi 4 8 gig model as my main computer for a day, and I posted a video about my experience.

Besides many diehard Linux fans complaining in the comments about my apparent idiocy caused by being a Mac user, the experience taught me one thing: A lot of software still isn't built for 64-bit ARM processors, or even for Linux in general.

But there's one trend that I'm seeing: most of the open source software I use already works great on a Pi 4 running on its 64-bit ARM processor.

In my testing, I used the latest 64-bit Pi OS beta, and I think the Pi Foundation had excellent timing releasing it this year, since many more applications can run on a 64-bit architecture nowadays, and because the newest Pi 4 models have much more RAM to take advantage of the architecture.

I could run the LAMP stack, Docker, Kubernetes, GitLab, Drupal, Wordpress, Minecraft, and almost all the Docker images I normally run on my Mac and in production.

For some things, I had to recompile or build my own Docker image, but most things are actually already built for ARM64, and I noticed I didn't have to spend as much time compiling things myself.

Earlier this week, Apple announced 'Apple Silicon', which is marketing speak for 'Apple's ditching Intel x86 CPUs and will use 64-bit ARM processors in Macs'.

And they dedicated a whopping 17 seconds (sarcasm: noted) of the WWDC 2020 keynote highlighting "new virtualization technologies" on the Mac.

Virtualized Docker and Debian VM environments on macOS Big Sur

What does this mean for the Pi and other inexpensive single-board computers? I think this is great news. And listening to Daring Fireball's podcast interview with Craig Federighi, there was even more interesting news:

Craig Federighi on Daring Fireball podcast talks ARM64 virtualization with Apple Silicon

Craig mentioned that the virtualization on the new Macs won't support X86 at all. He even explicitly called out Docker containers being built for ARM, and being able to run them on ARM instances in AWS.

I'm not going to discuss the lack of Windows support or Boot Camp on the new Macs since that's only tangentially related, but I do think there's one very positive implication: as Apple moves off of the X86 platform to 64-bit ARM, more and more organizations and developers will see the importance of building multi-arch Docker images, and also making sure their software compiles on ARM processors like the ones in the Pi.

Like I said earlier, there is already some good momentum in that area. What I think is going to happen is that momentum will start turning into a full-on freight train, and we're going to see the default for most software being "it runs on ARM and X86" instead of the current status quo, which is "it runs on X86, and might run on ARM but it's not really supported that way."

Even if many developers like me decide to jump ship off Apple's platform after macOS 11 is released, there's enough momentum in the Apple ecosystem, and in the computing world in general, to really push the ARM transition forward.

I feel like Apple's announcement at WWDC echoes earlier major changes, like dropping floppy drive support in the first iMac, adopting USB when most of the industry still used serial ports, or abandoning Adobe Flash before it was the 'cool' thing to do.

Microsoft has been trying to diversify into the ARM ecosystem for a while now (e.g. the Surface Pro X), but their Windows app support for ARM has been lackluster since they have never really forced developers to support it or even come up with a solid transition plan.

Maybe with Apple's announcement this week, the small amount of momentum ARM has had during the 2010s will turn into a landslide, and we'll see the architecture duke it out with X86 for the next decade, especially because of how important mobile, power-efficient, and edge computing are today!

If you liked this post, you might also be interested in my Raspberry Pi Cluster series featuring the Turing Pi.

Comments

I'm wondering whether this will make Microsoft consider doing a full-fledged ARM port of Windows.

The Surface Pro X (with a 3 GHz ARM CPU, the 'Microsoft SQ1', jointly developed with Qualcomm) is their current main salvo, but Microsoft has been working on ARM Windows since I believe at least 2012. They have a lot to show for it (e.g. Office already runs on ARM), but the vast Windows ecosystem would also need to change direction to at least have some sort of 'fat' binaries (like with Apple's 'Universal' apps), and I don't see that happening soon, unless Microsoft finds some way to really incentivize developers.

ARM Surface tablets come with x86-32 emulation (with 64bit support down the track).

But right now there's no incentive for Windows developers to release aarch64 ports of their Windows programs if there's no readily available cheap box for them to test on. If Microsoft were serious about developer mindset on Raspberry Pi, they'd complete the unofficial port by volunteers to the 8GB rPI4 and license it officially for FREE that platform - whereby anyone with Visual Studio has a $75 box to test on. Test on a Pi, run on a Surface X or aarch64 Windows 10 Azure instance...

I look forward to seeing your video review of Windows 10 running on a 4GB Raspberry Pi 4 compute module within your Turing Pi cluster! :)

What does this have to do with Apple? The ball's in Microsoft's court re: ARM64 on Mac in Bootcamp/Parallels as far as business motivations. From Apple's POV, perhaps they'd license their A13 chips exclusively to Surface devices just to cut Qualcomm out of the loop!

Microsoft has made this already with back in 2012 with Surface RT. This device was powered from Windows RT https://en.wikipedia.org/wiki/Windows_RT and run on ARM.

But soon after initial release MS was abandoned this "side" project and focus only on Windows 10 running on x86.

It's long story why project is abandoned, but in short this was pivotal change after departing key figures from MS after releasing Windows 8. Because RT was based on 8.

I just realized that an ARM64 MacOS would very likely lead to ARM64 Pro Tools support. That would certainly create some interesting possibilities.

Though all the UI bindings would be macOS-specific. I'm guessing companies that make GUI apps for macOS won't be able to easily port the UI and bindings to any form of Linux, barring a Swift-and-AppKit makeover in some Linux distro!

Thank you for your insights. I came across your channel through YouTube's mysterious algorithms. I would like to ask one question: you say that you'll leave the OSX platform when Big Sur is released. Can you tell me how you came to that decision? I have been unable to find it (yet) in your other videos.
The reason that I ask is that I am at a complete loss now at what computer (laptop) to buy (we need 2, one pretty badly). I have been a Mac user for 10 years now and very content at that. But the closing down of the platform has gotten me somewhat worried for a while now. My better half has been on Windows at the same time and she needs a new machine that just works, as she's not that savvy with the 'backstage', so to say. I do not mind doing some maintenance so Linux could be an option, but I'm not looking forward to a monthly fight with repositories and dependencies because the update of one, breaks another. And Windows; well, as long as the operating system assumes its smarter than the operator... Plus the amount of phoning home that's going on there.
I was really hoping to be able to stretch the need for a new laptop for my GF until Apple released the first ARM machine (I think investing in an Intel today wil be a waste of money, as the support will never hold for 10 years and I expect the computers to serve us for that long).
Software wise my GF can work on either 3. Firefox and LibreOffice and she's done. Only issue might be MS Teams for the home-office thing. I do use some stuff only available on OSX so I might have a harder time, but I am able to do some digging around.
So I do not ask for advice (even though it wil be very welcome), but just the considerations you had so I can add them into my decision-making-mix.

Kind regards, and thanks for the interesting video's. The Ansible 101 playlist is up next!
David Hille, The Netherlands

You say that you'll leave the OSX platform when Big Sur is released

I don't think I'll do that; for the foreseeable future, I'm taking a 'wait and see' approach. I'm guessing Apple will have a great laptop on their hands with the new Apple Silicon devices, and their future OS direction is annoying sometimes, but I'm generally okay with it.

I run Linux on all my servers (and Raspberry Pis), but I have found macOS and many Mac-only apps to be beneficial to my daily UI-based work environment, so unless something really bad or painfully annoying happens with macOS or Apple's hardware in the next few years, I'll probably stick around.

Now that they corrected the terrible keyboards from the 2016-2018 MacBooks, I don't really have any hardware complaints anymore.