It all started last year this month
In March 2022, the alpha version of Asahi was released, and I immediately installed it on my Mac Mini equipped with an 8-core Apple Silicon (ARM64) M1 processor.
Asahi is a Linux distribution that can run natively on Apple Silicon Macs thanks to some clever reverse engineering by members of the open-source community. Additionally, running Asahi is entirely legal, as Apple officially allows non-macOS operating systems to boot on its Apple Silicon platform.
While Asahi did not support all hardware components of the Mac Mini at the time, essential hardware drivers were available, and I was amazed by the speed of the system. Once I found out that I could install all the software I needed, it quickly became my daily driver, as detailed in my blog post from July. By December, drivers for all remaining hardware (Bluetooth, audio, GPU) were available, and all the open-source packages I wanted had been updated to support the 16K page size required by Apple Silicon.
At that moment, I thought, “What if I could run Asahi Linux natively on Apple’s fastest Apple Silicon Mac? That would be the ultimate ARM64 Linux workstation. I absolutely want to run the ultimate ARM64 Linux workstation.”
So I took things to a new level
In January of this year, I installed Asahi Linux on Apple’s most powerful ARM64 system: the Mac Studio equipped with a 20-core M1 Ultra processor and 128GB of RAM. It pairs beautifully with a stunning Dell 34-inch widescreen curved monitor via HDMI.
At the same time, I decided it was time to migrate from the powerful i3 window manager (which had to run on the old X window system) to the sway compositor running on the new Wayland window system. This was much easier than I expected—sway performs better than i3 and uses a more streamlined configuration.
Below is a high-resolution screenshot of my sway desktop on the Mac Studio. You can find my custom sway dotfiles configuration in this GitHub repository.
Is there anything wrong?
To quote Hamlet, Act 3, Scene 3, Line 87: “No.”
Everything is working perfectly… and running flawlessly. All hardware (Bluetooth, audio, HDMI, USB, 10G Ethernet, WiFi, and GPU) runs perfectly under the drivers created by the Asahi team last year, and there’s not a single piece of software I want or need that doesn’t meet the requirements. Asahi runs exceptionally well on this system.
Most of the packages I installed come from the Arch User Repository (since Asahi is based on Arch), but some of these packages are installed as Flatpak sandboxes (like Visual Studio Code). For more complex software systems, I often obtain ready-made container images and run them as containers (for example, my NextCloud instance). You might also notice from the output of the htop screenshot that I am running a K3s cluster to test the microservices I developed.
Since most of my workloads are containerized, I don’t need to run additional Linux virtual machines. However, I do need to support several web applications running in a BSD jail. To do this, I installed a dedicated QEMU virtual machine for FreeBSD UNIX, which uses 8 cores and 64GB of RAM. Below is an image of the virtual machine console running in the terminal on my sway desktop. You can find my QEMU scripts in this GitHub repository.
This is the fastest Linux desktop I have ever used.
Everything—I mean everything—is incredibly fast. Everything runs instantaneously, and application launch screens seem to be non-existent.
In some cases, it’s too fast. When I installed K3s, all the containers in the kube-system namespace kept entering a dreadful CrashLoopBackOff state (something I had never seen outside of production containers before). After some investigation, I found that the Mac Studio was too fast for Kubernetes resource timing, and I had to add resource limits for each pod to correct this.
One of the main reasons I love developing on Linux/ARM64 is that it aligns with my extracurricular development. The startup I’m currently collaborating with uses a compute-intensive application based on microservices that typically runs on AWS c6g.12xlarge Graviton instances with 48 ARM64 cores. The application is so demanding that we built our own load simulation and performance monitoring microservices into the application itself (our service mesh helps with this too).
Thus, I stage that application on the Mac Studio running Asahi and run load simulations to see how it performs in the staging environment on AWS. The Mac Studio utterly outperformed the Graviton instances. The latency under the same load averaged about 20% lower, and the compute speed was consistently 36% faster at peak times. Monitoring and interpreting I/O was trickier, but overall, it didn’t seem significantly different to me.
It truly is the ultimate ARM64 Linux workstation. I love using it.
Original article:https://jasoneckert.github.io/myblog/ultimate-linux-arm64-workstation
Popular Articles
– xz active maintainer “lurks” for three years—adding malicious code, implanting SSH backdoors
– Handcrafted an open-source version of “Douyin” with the Vue ecosystem
– AI programming language Mojo officially opens its standard library, claiming to be 90,000 times faster than Python
– iOS version of Firefox is riddled with a lot of “spaghetti code”
– Google aims to make Angular great again—merging with internal JS framework Wiz
