History Repeats: Apple M1 Thoughts
In case you haven't heard in the last five minutes, Apple released their new macbooks based on Apple's own cpu, the M1. Here's a fine writeup as any. The new macbooks are fast because the cpu and the operating system are designed for one another. We've seen this before in the history of computing. Generally, not on the user side, but on the server side. Let's walk through a very short history.
Cherry-picked Example #1: The VAX
On the server side, the VAX is an example of the hardware and the software co-developed for one another. The VAX instruction set ran the VAX/VMS operating system. Both were designed for each other. It worked well and was fairly amazing to use as a sysadmin and budding coder having to learn VAX assembly language.
The DEC Alpha AXP was amazing, as it was fully 64-bit, and again was written for the VAX/VMS operating system. Circularly, the VAX/VMS Alpha editions were written for the Alpha AXP cpu. As a kid, nerding out over the Alpha architecture and running VAX assembly on it was amazing.
Cherry-picked Example #2: Tandem Non-Stop
Tandem Computers were based on a "shared-nothing" principle. In order to make this work, they used a custom version of UNIX to work closely with the hardware. It all worked very well. The side-effect of "shared nothing" meant everything was a message and passed between cpus, memory, disks, etc. I'm glossing over a ton of details here. The nuances are real. I had a later version of one of these Tandems running a really popular gopher, WAIS, and ftp site. It was impressive. It ran for years without downtime, through hardware failures, software screw ups, and success of the sites it hosted getting flooded with requests.
There are many, many more examples, but let's step back. Of course, the server side of the world could do this because you need to handle massive loads and businesses have more money than the average consumer for computers. This trend continues today. When the average technical person thinks of ARM or RISC-based cpus, they think of mobile phones, tablets, and Raspberry Pi's. All of these are ARM-licensed RISC Instruction Set Architecture (ISA) cpus. You don't think about running them as your main operating system. For some, they can and do. Try to separate a teenager from their phone versus their laptop. See which one they choose to keep. In my experience, the phone is never surrendered.
Let's get into normal user space.
Cherry-picked Example #3: SGI IRIS Workstation
SGI IRIS Workstations were high powered desktops used by government researchers, the defense industry, and Hollywood visual effects companies. They were fast, very graphical, and f'n amazing to use. The operating system, IRIX, was a modified version of UNIX for the hardware in the workstation. It wasn't quite consumer, but we're getting closer. You could buy one of these for your house and use it for all sorts of normal consumer tasks.
"This is a Unix system. I know this. It's the files for the whole park. It's like a phone book - -it tells you everything.", Jurassic Park.
Yes, that was SGI IRIX running on an IRIS Workstation. Why immortalize an obscure operating system? Because it's what the visual effects people used to make the dinosaurs in the movie.
And finally, our desktop example.
BeBox and BeOS
C'mon, any reader of my blog will come across my love of esoteric operating systems and deeper love of unique hardware. It's not because I was forced to learn this wacky VAX ISA assembly language, then MIPS, then PowerPC, it's because once you start really coding at the layer above the hardware, you fall in love with it.
I had an original BeBox. BeOS was f'n amazing. A short fling, but what an impression it made on consumers who understood what they had. The original BeBoxen had Power PC 603 processors inside. PowerPC 603's aren't amazingly fast, compared to their MIPS, RISC, and x86 counterparts. However, if you write your operating system to take advantage of the hardware, you can do amazing things. BeOS was that amazing thing.
BeOS took full advantage of the PowerPC cpus and the rest of the hardware. When first starting to write code for BeOS, you realize everything is a thread. With multiple CPUs available, and a fast interconnect between the CPU, RAM, and graphics, you can do a lot with those threads. Even on relatively slow PPC603 cpus, BeOS was lightning fast. Everything it did was fast. Media encoding, video work, email, Internet, etc. It's what happens when the software plays to the strength of the hardware.
You can still use BeOS through its inspired open source project, Haiku.
Mac OS Big Sur and M1
What has Apple done? They've taken a logical step to design a RISC-based ARM-licensed CPU core to work well with other ASICs designed to offload functions from software to hardware. This is not a new idea. Arguably, iPhones and iOS are the warm-up for this M1 processor and macbooks. AMD and Intel are playing a finite game with the goal to dominate and win. Apple is, once again, playing an infinite game.
Modern x86 CPUs are increasingly power hunger and therefore hot. Either you make batteries vastly better or you change what's driving the need for better batteries. Managing heat and battery life results in a lot of compromises if your goal is to make a lightweight laptop. Apple's hardware engineering continues to be amazing. While I dislike their need to control everything in the operating system, their hardware is great.
Apple M1 and the new macbooks are a great symbiosis of hardware and software. As I hope you've realized, there's a long history here. It's a nice step forward for computing for all.