M1 and ARM
Apple’s newest M1 Macs have been total game-changers, marking the company’s transition to their own in-house Apple Silicon. The new chips run on ARM, a completely different architecture to the traditional Intel x86 or Intel x64 chips commonly found in previous Macs. As indicated, this alternative architecture comes with a whole host of advantages, but has cast doubt over the future of OS (specifically Windows) virtualization. More on that later.
The Ubuntu Port
Ubuntu – a popular Linux distro – has been made available to run on M1 Macs by the software virtualization company Corellium. An early build has been made available on GitHub, and the OS can be booted from a USB, eliminating the need to modify or tweak macOS. Corellium is well known for its controversial ARM virtualization products, being currently engaged in a legal battle with Apple over their web-based iOS emulator.
Being an early build, as should have been expected, there are a number of quirks to the OS. Installation seems fairly simple, according to a guide on Corellium’s website, but less advanced users may feel slightly uncomfortable with the sparse instructions. Luckily, a video tutorial is reportedly coming soon, according to the CTO Chris Wade. Notably, networking is only supported if a USB-C dongle is connected and GPU acceleration is absent, but USB, I2C and DART are all present and functioning.
Linux is now completely usable on the Mac mini M1. Booting from USB a full Ubuntu desktop (rpi). Network works via a USB c dongle. Update includes support for USB, I2C, DART. We will push changes to our GitHub and a tutorial later today. Thanks to the @CorelliumHQ team ❤️? pic.twitter.com/uBDbDmvJUG
— Chris (@cmwdotme) January 20, 2021
Roadblocks For Alternate Operating Systems
If you’re acquaintanced with the often-utilised Boot Camp, you’ll be familiar with the previously easy & user-friendly method of dual-booting. Unfortunately, we’re still a long way off on Apple’s new silicon. To understand, we have to delve into how CPUs (more commonly known as processors) function.
At the base level, all processors are made up of billions of ‘transistors’, with the presence of electricity meaning a ‘1’, and the absence of electricity representing a ‘0’. This is known as binary. Of course, it’s impossible to write today’s advanced cross-platform apps or operating systems in a low-level language such as binary. It’s unfeasible even in assembly language: which mainly consists of acronyms. Instead, software and programs are written in high-level languages like Java. These are then compiled (translated) into a set of instructions that run directly on the CPU. Because Ubuntu, like other Linux distros, is open-source, this means that people can compile it specifically for the ARM architecture and modify or rewrite any x86 specific code. Given that Microsoft’s Windows is closed source, it’s up to Microsoft to release an ARM-compatible version of Windows.
Microsoft does have a version of Windows specifically for ARM. However, it’s currently only available when preinstalled on a “Windows 10 on ARM” PC like the Surface Pro X. Emulation on M1 Macs is currently possible, but it uses a beta version of Windows and has multiple limitations. Craig Federighi even stated “That’s really up to Microsoft… We have the core technologies for them to do that, to run their ARM version of Windows, which in turn of course supports x86 user mode applications. But that’s a decision Microsoft has to make, to bring to license that technology for users to run on these Macs. But the Macs are certainly very capable of it.”
Hopefully, Ubuntu is only the first of future ARM-compatible operating systems coming to the M1 Mac, and Corellium’s release marks an important step in unlocking the true potential of Apple’s new machines.