Not everyone buys a Mac to solely run macOS. The bad news is that as of November 2021, native Linux support on Apple Silicon isn’t yet possible. Progress is being made, however, so let’s take a look at the Linux on Apple Silicon story so far.
Linux on Apple Silicon: An Uphill Struggle
Prior to November 2020, Apple used 64-bit x86 Intel processors in all of its Mac computers. These used the same architecture as most commercially-available Windows and Linux machines. This had benefits like Boot Camp which allowed dual-booting of macOS and Windows, and native support for x86 Linux distributions.
But in the latter part of 2020, Apple decided to go all-in on a new type of architecture, similar to that used in its smartphones, tablets, watches, and smart speakers. The results spoke for themselves, with the M1 chip that debuted in the MacBook Air, Macbook Pro, and Mac mini blowing previous-generation Intel Macs out of the water in both benchmarks and real-world performance.
Apple Silicon uses a different architecture entirely. It’s based on ARM which requires a different instruction set, and that means that software written for x86 isn’t natively compatible. For native Mac applications, Apple revived the Rosetta transpiler that translates and compiles x86 apps for the new architecture.
Apple made this switch for a range of reasons including big performance gains and a better performance-to-watt ratio. In doing so, they also removed the ability to run commonly available x86 operating systems. Since Apple Silicon is ARM–based, it borrows heavily from ARM but the software still needs to be adapted specifically for it.
In true Apple fashion, these differences are proprietary and heavily guarded. They underpin many of the advancements Apple has managed to squeeze into its latest Mac models, but this poses an issue for Linux support. There are already Linux distributions that are built for “true” ARM-based processors, but Apple Silicon is a different beast that requires a new approach.
Apple Silicon Is Not Locked to macOS
The good news is that Apple hasn’t blocked unsigned kernels from booting on Apple Silicon. The kernel is a central component of an operating system. It’s always there in the background, controlling how hardware and software communicate with one another. Unsigned kernels are those that are not overseen by Apple.
This means that Apple has chosen not to lock the hardware to a specific type of software. The bootloader that runs before the kernel can load unsigned kernels, which was a pleasant surprise to many once the M1 chip made its debut.
This is significantly different from how Apple tightly controls its smartphones and tablets. Apple blocks unsigned kernels from running on iPhone and iPad, and the company could have chosen to do the same on the Mac too. In future revisions or firmware updates, they still could.
For now, Apple Silicon is “open” in the sense that anyone can have a go at porting a custom kernel. Unlike iOS and iPadOS, no “jailbreak” is required to defeat Apple’s walled garden. Provided no code is taken from Apple’s software, operating systems written for Apple Silicon are completely legal.
Of course, this doesn’t mean that Apple is being helpful in the quest to port Linux to the platform. So far the company hasn’t put up any resistance, which is why efforts to get Linux working on the new platform are progressing nicely.
The Linux Kernel Supports Apple Silicon
In June 2021 support for Apple’s M1 chip was added to the official Linux kernel. This allows the kernel to boot natively on the chip that powers the 2020 MacBook Air, Mac mini, and 2021 iMac.
Getting the kernel working was an important early first step, but there are many more drivers that are needed to add support for the various controllers and chips that power Apple Silicon machines. These control all aspects of normal functionality: USB support, audio, power management, the ability to control CPU scaling, and more.
The road from basic kernel support to fully working desktop experience is a long one, but thanks to the efforts of some dedicated and skilled programmers, Linux on Apple Silicon is fast becoming a reality.
Enter the Asahi Linux Project
The Asahi Linux Project is a collective effort to bring Linux to Apple’s new desktop platform. In September 2021 the project reached an important milestone. Apple computers that use the M1 chip are now usable as desktop Linux machines. The announcement was made in a blog post on the Asahi Linux blog.
One developer, Alyssa Rosenzweig, tweeted of her excitement:
Everything just happens… instantly? What?
Computers haven't felt this fast since before I was born.
— Alyssa Rosenzweig (@alyssarzg) September 29, 2021
The blog post details the progress made so far, where several key and low-level drivers have been merged into Linux kernel 5.16. The post notes that while no GPU support has been added yet, “the M1’s CPUs are so powerful that a software-rendered desktop is actually faster on them” compared with comparable 64-bit ARM processors.
So far there’s only an alpha installer available and it’s aimed squarely at developers. In time, the Asahi Linux Project plans to release a version of Arch Linux ARM for anyone to try. Apple’s M1 chip is the first target, but the Asahi Linux Project notes that “we are in a unique position to be able to try writing drivers that will not only work for the M1, but may work –unchanged– on future chips as well.”
This could be great news for MacBook Pro owners who have the improved M1 Pro and M1 Max chips but either way, it seems like the Asahi Linux Project is committed to bringing Linux to as many Apple Silicon devices as possible.
Remember that this project is run by extremely talented and dedicated enthusiasts who are working tirelessly on a passion project. If you’re interested you can support the Asahi Linux Project with a donation, or even dedicate your own time by contributing to the project directly.
Use Linux via Virtualization Today
Even though you can’t yet run Linux natively, you can still do so using a virtual machine (VM). UTM is an app with a free and paid (Mac App Store) version that allows you to emulate a large number of processor architectures.
This includes ARM64 at near-native speed and x86-64 at much slower speeds. We’d recommend sticking to ARM64 versions for performance purposes, check out our guide to running Linux on Apple Silicon in a VM for the full low-down.
Alternatively, consider buying a laptop that already has great Linux support.