Logo Ryan Petris

The Upcoming Hardware Divergence

Posted on December 28, 2020 in Technology tagged Computer Hardware

All this has happened before. All this will happen again.

Today, when purchasing or downloading software, you generally only need to worry about whether it's designed to work with Mac OS or Windows, or perhaps even Linux, and nothing else. You don't have to check whether the application supports your specific processor, your sound card, your video card, etc., because all of that is abstracted away. Other than needing a certain performance level for certain applications such as games or video editing software, the specific hardware does not matter.

This is as close as we're going to get to a computing utopia of being able to grab some software and have it run anywhere, on any computer.

Going back to the 1980's, we had several computer manufacturers all with their own operating systems and hardware platforms, and binary compatibility of software was nearly non-existent. Not only that, but lots of software only existed for a single platform. Wanted to write a document on an Apple computer? Use AppleWorks. Need to open that document to another platform? Too bad, AppleWorks isn't available for that platform, nor is the file format compatible with anything else. That's assuming you're even able to get the file to that other computer in the first place.

Yes, not only was the software incompatible, but everything also had proprietary hardware and/or proprietary on-disk formats. You couldn't simply write a file onto a disk on one system and read it on another; it had to be within the same ecosystem. Yes, there were ways around this and exceptions, but those required either specialized hardware or software to work correctly. There was also BASIC during this period, which was somewhat portable, however outside of basic text commands each platform had its own set of additional commands for drawing, sprites, etc., making portability near impossible still.

We have this computing utopia today because everything standardized around a specific hardware platform, Intel's x86 instruction set and AMD's x86_64 instruction set, and operating systems have matured to the point where only the operating system matters as far as compatibility is concerned. While these processors are proprietary, they are ubiquitous in today's computing environment with the only exception being portable devices such as cell phones and tablets.

This is changing, however. Apple recently released their 2020 line of laptops and desktops utilizing their in-house built "M1" ARM processors, kicking off Apple's third major hardware platform change over their lifetime. Microsoft is also working on their own ARM-based processors, among others that already have viable products on the market.

So, everything appears to be shifting from x86 to ARM processors. If ARM supplants x86, wouldn't we effectively have the same landscape in the future, just with a different common hardware platform? Maybe, maybe not; if everything were to remain open and abstracted in the way it is today, then everything will be fine. However, manufacturers are taking advantage of this platform shift to implement additional restrictions in their hardware.

For instance, Apple now has the T2 chip which "secures" their platform. No longer can you run Linux on a Mac and access the internal drive, killing off its use at least in their portable computers. Mac OS installs are now validated in the same was iOS installs are. Want to downgrade to an older version of Mac OS because there's something you don't like or is broken in a newer version? Too bad, Apple won't allow that.

Microsoft has also locked down their Surface laptops that are ARM-based; there's no way to install a non-Microsoft operating system on those devices. Should Microsoft decide to stop supporting them, you'll eventually have an expensive paperweight.

Not only that, but manufacturers have not taken driver support on ARM processors seriously enough. Even on Linux, where we have open source drivers for nearly everything, ARM has taken a back seat. Many Android devices and single-board computers are stuck with the kernel they shipped with or lose important features such as hardware video acceleration due to the manufacturer not releasing the kernel source as required by the GPL, or holding back the glue code between the kernel and their proprietary device drivers.

That's however only a concern if you managed to get to a point where you're able to install the operating system of your choice on the device. Slowly but surely, we have lost or will lose ownership of the devices that we've purchased, moving to a leased model for hardware. You won't actually be leasing your device like you do a car, however the manufacturer will have complete control over what is installed on your hardware in the name of "security". Additionally, for your protection and after a few years, you'll no longer be able to use it due to the manufacturer not caring to update it any longer. Say goodbye to the third-party computer market.

Can this be avoided? Probably not. Unlike the 80's and early 90's when the only people using computers were tech-savvy people, everyone today has a computer, and everyone is buying a computer. Computers have become a commodity, something that people use to write documents, watch videos, and browse the internet. It's an appliance, and as such will be treated as an appliance by users, manufacturers, and unfortunately, legislators.