A magazine about programmers, code, and society. Written by humans since 2018.

Aftermath Of The Kernel Wars

During the 1980s and 90s, computer companies waged an open war for supremacy. We are witnesses of an age that could be described as post-apocalyptic. The dust has settled for the past 20 years, with a small ignition of hostilities around 2010, between members of the mobile duopoly and some late challengers. But to a large degree, we can say that the Kernel Wars are over, and we are privileged observers of their aftermath. But everyone was surprised to discover the winner emerging from the ashes of the conflict.

Operating Systems were at the heart of that war. Back in 1980, they were a relatively new concept. From the 1950s to the 80s, we had been using countless computers without anything resembling an operating system. Neither the Altair 8800 nor the IBM 1401 had such a thing. For a while, personal computers booted directly into BASIC. Operating systems are not, in a strict sense, required elements, but of course, they are very convenient things to have in general.

For a long time, however, operating systems were hard to find.

Starting with the IBM System/360, operating systems became more and more strategic to companies, and to users as a consequence. Multics begat Unix, a story better told by Brian Kernighan. Unix gave way or inspired many different operating systems, including Windows, its communist nemesis Linux, the lesser known siblings known as the BSDs, and that forgotten cousin named Solaris. 8 bits led to 16 and then 32 and finally 64. RISC versus CISC. Real mode gave way to protected mode. Multithreading begat Hyper-Threading. Pipelining begat branch prediction and Spectre. Users, processes, memory, devices, they all got protection, but they all became vulnerable to viruses and whatever threat à la mode du jour.

It does not matter who fought this war against whom. It is not relevant to know whether Bill Gates or Gary Kildall should have provided the operating system of the newly introduced IBM 5150 in 1981. Likewise, it is not relevant to know if OS/2 “Warp” was better than Windows 95, or if such and such feature in your pocket was released on Android or iOS first.

Come to mind the names of violent battles: DR-DOS, Taligent, AmigaOS, Newton OS, Windows for Pen Computing, Copland, Vino, NeXTSTEP, Novell NetWare, JavaOS, BeOS, DoJ vs Microsoft, Rhapsody, POSIX, Linux is communism, Linux is a cancer, Samizdat, Windows Vista, SCO, Symbian, Solaris, OpenSolaris, systemd, Windows Phone, MeeGo, Tizen, Firefox OS, Sailfish OS. Countless mythical man-month hours were lost. Millions of lines of code were fired. Billions of marketing dollars were spent. Our memories are with those who valiantly fought in those barbaric times.

BYTE Magazine reported time and time again from the frontline, just like CNN would. In the June 1981 issue, the aforementioned Gary Kildall wrote an article about CP/M and the promise of 16-bit computing (followed by another with the “ins and outs of CP/M” a few pages later), while another described Microsoft XENIX, a Unix based on AT&T System 7. Yes, kids; Microsoft sold its own version of Unix for a short while.

(In the same edition, Steve Wozniak wrote another about calculating “e” on an 8-bit computer, an article arguably more appropriate for last month’s edition of this magazine.)

In September 1995, the 20th anniversary edition of BYTE Magazine lauded microkernel operating systems as one of the top 20 technologies of the previous two decades (Spoiler alert: Linux is monolithic, and Windows and XNU are hybrid. So much for awards.)

Two years later, the same BYTE Magazine asked on its January 1997 cover: “Can Java Replace Windows?” (Spoiler alert 2: it did not, and… seriously?) Reflecting the myopic insanity of the warlords commanding troops from the comfort of their bunkers, Scott McNealy’s interview on page 40 is just a puzzling diatribe against Microsoft PowerPoint instead of an actual argument in favor of Java.

The Kernel Wars caused many alternative Operating Systems to flee the hostilities, some finding refuge on Git or Subversion repositories scattered along the frontier: MikeOS, GNU Hurd, Oberon, Minix, FreeDOS, Plan 9, Mach, ArcaOS, Haiku, ReactOS, osFree, Redox, TempleOS, L4, Illumos, ChimeraOS, and so many more. Let’s not forget about Neos, the operating system that will control the wellbeing (or not) of the inhabitants of Neom. Operating systems everywhere.

The word “kernel” has a very earthly etymology:

“edible substance in a nut or the stone of a fruit,” Old English cyrnel “seed, kernel, pip,” from Proto-Germanic *kurnilo- (source also of Middle High German kornel “a grain,” Middle Dutch cornel “coarse meal”), from the root of corn “seed, grain” (from Proto-Indo-European root *gre-no- “grain”) + -el, diminutive suffix. Figurative sense of “core or central part of anything” is from 1550s.

Humans have fought wars around grain for millennia. Our world has not changed a bit.

In our modern version of a “Pax Romana” all mainstream operating systems share similar technical characteristics: preemptive multitasking, networking, a graphical user interface, vim, and a C compiler. At least.

Some even have working Bluetooth stacks. I know, unbelievable.

From 1980 to 2000, the battlefield was the desktop. From 2009 to 2014, the smaller battlefield was the smartphone. Windows won the first war. Android won the second, although some regions of the world remain under the control of iOS. You can trace parallels between both wars, between the architectures of both operating systems, between the programming languages and the frameworks, but the real battle was won through their respective platforms.

Because the reasons for people to choose an operating system over another have to do more with what their neighbor is already using than anything else. We are social animals, a fact often forgotten by hordes of programmers deprived of human contact across the world. Users, those mythical and quite misunderstood beings, they want to be able to share programs, documents, files with their peers, their family, their colleagues. Hence, they will use the same system as them. Hence, they will consume the apps from their respective marketplaces. As a consequence, developers will have incentives to write apps for those operating systems, whichever and whatever programming languages and distribution systems these systems offer or support.

The driving force around operating systems was the platform, regardless of their respective technical merits (emphasis by the author). Exponential growth guaranteed, even if your code is shit. Ask Raymond Chen if you do not believe me.

Users do not care about debates around microkernel vs. monolithic kernel architectures. They do not care whether their applications are cross-platform or not. They do not care if the programming languages used to create them are strongly typed or not or if they are object-oriented or not. Not only that, but they do not even want to know whether the teams making those apps are unionized or not. But they do care about price; the lower, the better, leaving large “red oceans” behind, as Mauborgne and Kim would call them, in which developers, particularly those in the “open source” arena, struggle to find any subsistence while corporations own their work and grab their royalties.

Impatient while waiting for the realization of a prophecy stating that one year it would conquer the lands of the Desktop, a drunk Linux forced its troops to refer to it henceforth as “The Kernel”, and subsequently invaded the deserted lands of Android around 2005. This position served as a stronghold against iOS, whom Linux defeated in the battle of Mobile around 2010.

A few years after that, Linux and its troops settled in the Cloud Native lands of Kubernetes, spawning various offspring called “containers”, each carrying its legacy of isolation and scalability. Thus was born the meme where Freddie Highmore cried “it works on my machine,” to which Johnny Depp replied, “then we’ll ship your machine.” Still laughing about the joke, IBM bought Red Hat for 34 billion USD in 2019 and probably saved itself from irrelevance. The latest rumors around Linux mention something called eBPF, and its inclusion as a component on Windows, but historians struggle to verify such claims.

As a rather surprising twist, the winner of the Kernel Wars was not one of the big operating systems of our era: not ntoskrnl.exe, not XNU, not the Linux Kernel, not any other. Neither was Unix, as Horace Dediu argued. The winner was sitting much higher in the abstraction ladder, witnessing the war from a distance, watching the mutual destruction and resurrections of many operating systems since the mid-1990s.

The actual winner of the Kernel Wars was the World Wide Web. Itself a survivor of previous wars, the web browser is the current scenario where much more savage battles are taking place nowadays: the Privacy Wars, the Artificial Intelligence Wars, the Decentralization Wars, the Layoffs Wars, the Cloud Wars, and the Crypto Wars.

Adding insult to injury, historians nowadays reconstruct old operating systems as websites: CP/M, System 6, System 7, Mac OS 8, Mac OS 9, IBM OS/2, Windows 3.1, Windows 98, and much more.

Or, even more insulting, as an Electron app.

Cover image by Bing Image Creator; prompt: “Aftermath Of The Kernel Wars”.

Continue reading Ken Ross & Paul Laughton or go back to Issue 056: Operating Systems. Did you like this article? Consider subscribing to our newsletter or contributing to the sustainability of this magazine. Thanks!
Back to top