Why GNU/Linux is Unmatched – and Unmatchable
by Glyn Moody
Users of free software are nothing if not passionate. Most of them care deeply about the code they use, and will happily plunge into the flamewars that flare up regularly across the Web. The core focus of those arguments is well established by now: against Mac fans, it's about the virtues of true openness and freedom; against Windows fans (do they still exist?) it's about those, as well as security, speed, stability, etc. But there's another aspect that rarely gets discussed, and yet it represents one of GNU/Linux's greatest strengths: the breadth of hardware platforms supported.
Today, GNU/Linux runs on just about everything that has a processing chip, from the smallest embedded system, through smartphones, ARM-based netbooks, laptops, multiple desktop architectures, servers and mainframes to the mightiest supercomputer – 91% of the top 500 systems run some form of Linux. Recent additions to the Linux family include Android-based tablets, Internet radios and TVs (and not just from Google).
The benefits of working with a common core lie at the heart of the recent announcement of Linaro:
ARM, Freescale Semiconductor, IBM, Samsung, ST-Ericsson and Texas Instruments Incorporated (TI), today announced the formation of Linaro, a not-for-profit open source software engineering company dedicated to enhancing open source innovation for the next wave of always-connected, always-on computing. Linaro's work will help developers and manufacturers provide consumers with more choice, more responsive devices and more diverse applications on Linux-based systems.
Linaro aligns the expertise of industry-leading electronics companies to accelerate innovation among Linux developers on the most advanced semiconductor SoCs (System-on-Chip). The current wave of "always-connected, always-on" devices requires complex SoCs to achieve the performance and low power consumption consumers demand. Linaro was formed to increase investment in open source, address the challenges in developing products for sophisticated consumer markets and provide the support of a broad array of semiconductor products from multiple companies. By providing the common foundations of tools and software for other distributions and stacks to build upon, Linaro enables greater operational efficiency for the electronics industry.
What's interesting about this move – aside from the big names backing it – is that it is consciously trying to create a *common* collaborative platform for embedded systems, recognising that the bigger the ecosystem, the lower the costs and the greater the competitive innovation that is possible at higher levels of the stack. What applies here is equally true for the world of Linux as a whole: standardising on it allows companies to draw on the huge range of existing tools and pools of expertise to cut costs and decrease the time it takes to bring products to market.
The extraordinary range of supported platforms is in part because of GNU/Linux's heritage as a version of Unix, itself highly portable. But originally, the Linux kernel was anything but that. As Linus told me in 1996:
“The reason Linux wasn't really portable at first was not because I conceived portability as bad, but because I considered portability to be a non-issue. In the sense that I didn't think that there was any interest in it, and because the PC platform is so good price-performance-wise, that making a portable Linux to anything [else] didn't quite seem to make much sense.”
This didn't stop other hackers from making ports, notably to the popular Amiga and Atari micros, the PowerPC platform, and workstations based on the MIPS R4000 and Sun's SPARC processor. But on their own, they did nothing to increase the inherent portability of Linux: that required some fundamental re-thinking and re-writing by Linus himself – a big task.
He finally decided to undertake all that work after giving a talk to Digital (the old DEC), where he was offered a top-end system running Digital's Alpha microprocessor. This came at just the right moment, when Linus was looking for a new challenge:
“[There] was a stage in Linux that I felt, OK, I've done this. There's never been a stage where I have nothing to do, but there's been a few stages when I've wondered is there something fundamentally interesting left. So when [Digital] offered an Alpha, I thought, hey, this might be it.”
There were some good reasons for making the Alpha the first official port:
“The Alpha had a few good points, mainly 64-bits and very radically different architecture from the Intel chips. And so in one sense the offer was the perfect porting object because it was so different that if I had an Intel port and an Alpha port, then OK, I proved it, it can be ported to just about everything.”
It was a non-trivial task, but one that brought huge advantages for the future:
“What happened was that I really had to clean up a lot of code, especially in the memory management, because it was completely specific to one architecture and I had to really take a completely different approach. I never wanted to have two separate versions; I wanted to have one Linux that worked on both Intel and Alpha and anything else.”
There were two main fruits of Linus's labours. First, he was able to turn his work into the subject of his Master's thesis; and secondly, a framework was created that was explicitly designed to make porting easy.
That on its own might not have been enough: for example, it is easy to imagine a proprietary operating system being designed in just this way. Indeed, hard though it may be to believe today, once upon a time Windows NT ran on not just Intel chips, but on Alpha, MIPS, Fairchild Clipper and PowerPC architectures. But at some point, Microsoft decided those markets were too small to be worth devoting resources too, and shut down the projects.
In the open source world, things are different. First, the availability of the Linux code means that anyone can port it to anything if they want to: they don't need to ask permission. Secondly, even if “official” ports disappear, there's nothing to stop somebody else picking up the baton and carrying on. That's why the news that the SPARC port of Ubuntu is to be discontinued – with the IA64 under threat too – doesn't mean that either of these will necessarily disappear. If there is enough demand, the projects will continue – because they *can* continue.
And that, at root, is what is so important – and unique – about the unparalleled platform support that GNU / Linux offers today. It is yet another manifestation of the underlying freedom built in to the ecosystem at every level – a consequence, albeit a slightly unusual one, of the Four Essential Freedoms. It's why no other non-free operating system matches or will *ever* be able to match GNU/Linux in this regard – and why Mac and Windows fans really prefer not to talk about it.