Plumbing the Depths

After almost two decades of working with computers, I want to give it up. Instead, I want to become a plumber. Plumbers have it made.

After almost two decades of working with computers, I want to give it up. Instead, I want to become a plumber. Plumbers have it made.

A plumber can walk into any hardware store in any town and purchase reliable, high-quality, compatible parts. Building codes are largely standardized, too, so best practices and the rules of how to assemble the parts are widely known. Moreover, plumbing is governed by the ultimate standards body — the laws of physics, which plumbers have leveraged since the invention of the “plumber’s crack” to great advantage.

If only computers were so easy.

Of course, my lament is largely misplaced. Plumbing has been around for thousands of years, while the computer is less than fifty years old. New materials may impact plumbing every so often, but not nearly at the same rate as computing technologies, which continue to change and improve at a breakneck pace. And many computing standards do exist: technologies like Ethernet, USB, and PCI have commoditized connectivity and peripherals, providing a rich infrastructure for other amenities.

But then again, there are caveats. Little nagging truths popped into my mind as I pencilled those little white lies about USB and PCI: yes, I can plug any such device into my machine, but what about device support? Do drivers exist for my operating system and version? What about application support? Unlike parts found at the hardware store, “standardized” computer components often means “pin-compatible” or “protocol-compatible,” but not truly “plug and play.”

Linux has similar issues: yes, if an operating system has the Linux kernel, it is “Linux,” but there are caveats just as before: What version of the kernel? Whose kernel? What extensions have been added? I worry that the blessing of variety is also a curse. The Curse of Unix.

When Unix proliferated, buying hardware meant buying into a flavor of Unix and perhaps making trade-offs: great machine, bad Unix? Or, great Unix, bad machine? Usually, back then, the great machine always tipped the debate, and buyers resolved themselves to porting their code yet again.

Worse, independent software vendors had to back every pony — an investment most couldn’t afford. The end result: no applications, no interest in the operating system, and dying Unix.

Flash forward two decades, when almost all machines are great, and the dynamics of the decision are very different. Buying hardware is a no-brainer: hardware is cheap and readily available. Now the decisions focus on the operating system and its so-called “stack,” a layer-cake like assembly of compatible, feature-rich software. Yes, some shops are “Sun shops,” running Solaris on SPARC (and others are “Mac shops,”) but most are “Windows shops” or increasingly, “Linux shops.” The hardware is unimportant. What’s important now is software.

I rarely compliment Windows, but I do admire its APIs’ “predictability” (so do virus writers). Linux should take heed.

And it has.

Recently, a number of companies announced support for the Free Standards Group’s (http://www.freestandards.org) Linux Standard Base 2.0 (LSB2). An LSB2-compliant application will interoperate with any LSB2 distribution. LSB2 also includes 32- and 64-bit hardware support. A common, well-known API, and broad support across new hardware is exactly what’s needed to herd the cats that are Linux distributions.


Martin Streicher is the Editor-in-Chief of Linux Magazine.

Comments are closed.