On CBSSports.com: John Madden curses 2 NFL players
BNET Business Network:
BNET
TechRepublic
ZDNet

By John Carroll
Posted on ZDNet News: Feb 24, 2003 2:00:00 PM

COMMENTARY--There have been two dominant programming domains in the tech world, Unix and Windows. Both sides have their own specialists, standard tools and programming conventions. The two camps also operate in a world populated by OEMs with very different business models.

On the one side are Windows OEMs, all of whom share an operating system supplied by one company, Microsoft. This model offers a high level of compatibility across hardware, and this software-inspired leveling is the thing which forces OEMs, deprived of opportunities for hardware differentiation, into fierce competition.

On the other side are Unix OEMs, who do not share a single source operating system. Historically, Unix hardware shipped with an incompatible variant of Unix. That incompatibility, to be sure, is partly due to differences in machine architectures (Solaris runs on SPARC chips, while HP-UX doesn't), but it also has lots to do with differences in API which makes writing a cross-UNIX software product more difficult.

That is all changing, however, with the exploding popularity of Linux. If current trends continue, there is every reason to believe that Linux will sweep away its Unix siblings to become the de facto center of the Unix programming domain. Linux is not an operating system exclusive to a particular brand of hardware. In that sense, Linux fills the same market niche as Windows, serving as a force for hardware commoditization as it becomes the standard to which Unix-style software is written.

The evolution of the software standard
For most of computing history, hardware defined the programming standard. Operating Systems did exist, to be sure, but they offered far less functionality than modern operating systems, and more problematic, were unique to a particular brand of hardware. Though COBOL, as an example, was a standard of sorts, there was no guarantee that COBOL written for an IBM mainframe would be compiled safely using the Burroughs compiler, and one could be sure that the Job Control Language (JCL) wouldn't work cross-platform.

Part of the reason for this was simple pragmatism. Processing speeds were much slower than they are today, meaning the advantages from a speed standpoint of tuning an operating system to fit a particular hardware configuration were greater. The other part, of course, was an attempt at hardware differentiation. Since all the major computer makers were hardware vendors, software played second fiddle to hardware and was viewed more as a differentiator rather than a profit center.

The "marginal" or per-unit cost of software shrinks as the product’s sales volume increase, since the costs are relatively fixed. This means that economic actors, who include buyers looking to save money and sellers of software product hoping to boost revenues, have an interest in creating a market that is as large as possible. In a world where hardware defines the programming environment, therefore, there is a natural tendency for one vendor to become dominant, unifying the market through ubiquity.

Economics of scale, in other words, was the dynamic that gave IBM its dominance of the IT landscape. IBM's products ended up as the base upon which a unified software economy was built. This allowed IBM to colonize the world with its mainframes and peripherals.

Hardware, however, was a messy thing upon which to standardize. If you wanted to change to software that ran on a different brand of hardware, you had to throw out your existing hardware. As processing speeds improved, however, it became possible to move to a more flexible foundation based on software. Software is virtually infinite in its variability, making it far superior to a standard which relied on a particular configuration of hardware.

The natural place for such a cross-brand software foundation is at the operating system level. An operating system can expose the same external API to any application software, regardless of underlying hardware. As more software targets the operating system as opposed to hardware (or rather, hardware with a custom OS specific to that hardware), economics of scale develop around generic software.

Windows as software standard
As is often the case, being in the right place at the right time makes a huge difference in terms of the success of a company. That certainly applies to Gates & Co, for Microsoft was the company IBM chose to provide an operating system for their new personal computer (PC).

IBM in 1980 was still the company to whom the world turned for IT solutions. The world was changing, however, a change propelled by exponential increases in processor speeds which made relying on a software middle-layer feasible. Seeing a change as occurs is a rare thing, however, and there is plenty of evidence that IBM didn't. How else to explain IBM's decision not to tie Microsoft to an exclusive supply contract? This left Microsoft free to license their operating system to any hardware maker willing to pay, which in a world moving towards software standards, turned out to be a critical strategic error.

Microsoft, of course, reaped the whirlwind, turning an operating system they bought for $50,000 into the basis for a software market worth hundreds of billions of dollars. This unification around a software standard created fierce hardware competition underneath Windows, as OEMs raced to cut costs in a market with limited differentiation capabilities. The result is a market where PC hardware that is faster than many servers were a mere five years ago can be found for close to $500.

The quest for a standard Unix
Unix was introduced to the world in 1969 as a result of work done at Bell Labs, a research division of AT&T. For most of its history, Unix was a proprietary operating system--the rights to which were owned by AT&T (later sold to Novell, then to SCO, and finally ending up in the hands of Caldera). That control didn't last, however, mostly because AT&T was willing to license the Unix source to universities at almost no charge

What resulted was an explosion of innovation centered around Unix. Unix drove the first true "open source" revolution, as programmers around the world used access to the Unix source code to extend it into new areas of computing. The most famous outgrowth from all this was BSD (which stands for the "Berkeley Standard Distribution"), the operating system which became the core of Apple's Mac OS X. (For more Unix history, check out this article by Ian F. Darwin, and Nick Moffitt's $7 history of Unix)

Unfortunately, the quest for a software standard based on Unix hit a snag. Unix "forked," resulting in a proliferation of mini-standards similar in a number of facile features, but different enough to require work to ensure compatibility across variants. Part of the blame for this certainly goes to AT&T, whose legal battles with clones of Unix forced many to re-implement code in order to avoid stepping on AT&T's intellectual property. Lacking a central gating authority certainly didn't help (something AT&T could have provided, had they not been so busy whacking heads), and networks weren't what they are today, making collaboration much more difficult.

Whatever the case, Unix became an operating system largely tied to the hardware upon which it was sold, thus perpetuating to a lesser extent the IBM business model and allowing Unix-oriented hardware to avoid the commoditization which shook up the PC industry. This should be apparent to anyone who has experienced over the years the eye-popping prices of Unix servers.

Linux, the next step in Unix' evolution
Linux was born as a means to make a Unix-style operating system affordable in a market filled with high-priced offerings beyond the reach of normal (read: non-business) users. From such humble beginnings, it has grown into an operating system which offers the unification benefits that Unix was intended to provide. Software running on Red Hat Linux will usually run on a comparable configuration of Mandrake (assuming the use of the same processor). Even where there are incompatibilities, however, a leader in the provision of Linux distributions has already arisen in the shape of Red Hat, offering the same form of single-company guarantee of compatibility that Microsoft offers customers of Windows.

Today, the same forces of hardware commoditization which shook up the desktop PC industry (and practically shook IBM right out of it) now march across the Unix server landscape. A growing number of hardware vendors ship with Linux, greatly lowering the price of servers for people looking for a Unix-style operating system. Even better, Linux' low-cost development past has made it compatible with hardware from the fiercely-competitive PC business (hardware, mind you, made cheaper by Windows' unifying presence). Linux servers can run on Intel chips and have access to the wide array of hardware options that exist for Wintel systems.

This is a serious challenge to the business models of companies accustomed to differentiating their hardware with custom variants of Unix. The path to Linux is one of low-margins and heated competition beneath a standard Linux base, as revealed by the market for Wintel hardware. It's a path of immeasurable benefit to consumers, however, which is why the growth of Linux should be welcome news to anyone who prefers the Unix way of programming.

Addendum
For all my talk of standards centered around software, one hardware company bestrides the industry as the de facto standard for the heart of most computers: Intel. As Windows and Linux battle for the hearts and minds of developers and users, Intel knows that it can make money regardless of who wins (if either does), since both will need Intel chips (well, technically speaking, Linux supports other processors, but the mass market has shifted to Intel chips).

If history is any guide, however, even Intel should avoid feelings of complacency. Faster processors made reliance on a software standard versus a hardware standard more economical. The processor's place as the last bastion of hardware-oriented standardization, therefore, remains only as long as it is not possible to use a virtual machine abstraction in all cases.

Java and .NET set the foundation for a shift from reliance on a single processor standard. Few would consider using Java or .NET for something as performance-intensive as games, but don't limit yourself to what is possible today. One day, these environments will be good enough for even the most demanding virtual world. Then even Intel will have cause to worry.

John Carroll is a software engineer living in Ireland. He specializes in the design and development of distributed systems using Java and .Net. He is also the founder of Turtleneck Software.

SponsoredWhite Papers, Webcasts, and Downloads

Talkback

Add your opinion

SmartPlanet

advertisement
Click Here