Linux Architectural Variety
scottalanmiller last edited by scottalanmiller
Linux is one of the rare operating systems on the market today that has a broad architectural range of options for deployment. This makes Linux a bit more complex to think about, especially for someone looking to get started learning about Linux because in doing so, most people also find themselves confronted, simultaneously, for the first time with a non-intuitive range of architectural options.
For those of us that grew up with operating system diversity in the 1980s and earlier, the idea that there was a standard system architecture was completely foreign. Nearly every computer vendor made multiple architectures (Commodore had three or four, Apple had two or three, IBM had so many we could never keep track, etc.) These varied dramatically and nearly every operating system was unique to just one or two.
In the modern world there are just a handful of architectures that have survived to take their place in the enterprise server world (IA32, IA64, Sparc, Power, AMD64, AArm64 and AArm32.) Of these, IA32 and AArm32 are vestiges and already on the verge of being a footnote in the history books. IA64 is waning and is expected to vanish soon. Leaving, realistically, AMD64, Power, Sparc and AArm64 (ARM 64) as the last architectures standing after decades of competition (some like MIPS, PowerPC, M68K, PA-RISC and Alpha have already passed into obscurity and into history except in embedded systems and hobby systems in the case of MIPS.)
Most people coming to Linux do so with an existing background in some other system. Operating systems like Windows and Mac OSX exist solely on the AMD64 (aka PC) platform and deal with an architectural ecosystem so large, so standardized and so all inclusive that they are often unaware that other architectures exist, are common, and what it means to use one of them. Likewise, IBM's AIX, i and z operating systems are all exclusively available on the Power architecture. HP-UX from HPE is only on IA64 (Intel Itanium) and nowhere else. Oracle's Solaris is available on Oracle's Sparc architecture and optionally as a second class installation on AMD64 (a rarity that an enterprise UNIX OS has more than one available architecture.) Because of this, much of the complexity that people associate with Linux is actually complexities arising from architectural variety - Linux simply does more, in more places and more ways, that nearly any other operating system option. Of course it seems complex.
The only other operating system family with a similarly broad set of deployment options, actually one that is even broader than Linux, is the BSD family. FreeBSD, like Linux, can be installed on nearly any major architecture. NetBSD famously can be deployed essentially anywhere to anything. It is their claim to fame. The OS is good on its own, but if you can only install one OS, NetBSD is likely to be the one. You can install it to many systems that do not even exist any more or essentially impossible to get. If you ever wanted a modern OS on an old Motorola 68002 board, NetBSD is by far your best bet.
Outside of the PC world where not just the processor but the broader system architecture is heavily standardized you often get great disparity even within the world of a single processor. IBM's Power systems famously come in a great number of varieties including mini computers, mainframes and for a long time both IBM-made AIX desktops and Apple-made PowerPC Mac desktops. (Historical note, the Mac world went from the Motorola 68000 architecture, to the IBM PowerPC Power32 to the Intel IA32 to the AMD64 over the years.) Some, like systems based on ARM, are each unique and have no standardization so any OS that will run on a given motherboard needs to be tested and likely modified for that specific board, making the whole situation dramatically more complex. ARM is the dominant architectural maker for the mobile world including tablets and phones.
So it is important, when talking about Linux (or BSD) systems that we not make the assumption that everyone is talking about Linux on AMD64. No doubt the majority of Linux installs and users will be on AMD64, but Linux on Power and ARM64 is both commonly and rapidly increasing in commonality (especially as ARM enters the enterprise server space and IBM heavily promoting Linux on Power) so we need to be very aware.
For those who are looking to learn Linux and have come from a background in PC systems (Windows, Mac, etc.) I highly recommend avoiding non-PC architectures because this forces learning both Linux as well as a new computing architecture at the same time and can make it unnecessarily difficult to learn Linux while simultaneously making it confusing which differences are caused by Linux and which are caused by the change in architecture.
The common example here is the Raspberry Pi which is an ARM-based computer. Many people jump to using an RP system when they want to learn Linux. Few things could be worse. Systems like this are mostly novelties, present unnecessary barriers and add confusion to a process where that is rather detrimental. And since devices like the RP are not how enterprise servers are run, learning on one is not beneficial from a hardware aspect either. Far better is sticking to enterprise server architectures like AMD64 and learning on virtualization like a production server would be used. Save playing with niche hobby architectures for spare time or once Linux is well known and understood so that the differences in the architecture can be discovered and appreciated.