Chapter 10: Through the Glass Darkly: Linux vs. Windows

Overview

Just because you have an army of people saying that you're right doesn't mean that you're right. I can go out and get an army of people to say I'm right, too.

From a conversation with Don "Smokey" Wallace

In the previous chapter, we compared Linux and the Unix philosophy with the philosophies of other operating systems. While those systems were significant in their own right, they have not have the kind of impact on the world that Microsoft Windows has had. We explored those systems for good reason, however. Not only did they exhibit characteristics common to proprietary systems, but they embodied design philosophies that run counter to the Unix philosophy in various ways. And, not surprisingly, adherents of those design philosophies have found a new system that continues their approaches in Microsoft Windows.

If you'll carefully examine the design philosophy behind Microsoft Windows, you'll find that it bears strong resemblance to Digital's VMS operating system. This is not an accident. Their roots are similar because of the design approach taken by David Cutler, the lead engineer from Digital who was responsible for making VMS (and Digital's VAX hardware) successful. Cutler was the driving force behind most of Digital's operating systems down through the years, and VMS was his magnum opus. Or so it would seem. Soon after VMS reached its zenith in the early 1990s, however, Cutler sought kindred spirits elsewhere. He found them in the offices of Microsoft, where he led the design of what eventually became Windows NT, a system that ultimately garnered much greater market share than VMS.

At the time, there was a lot of speculation about whether Windows NT was really the next version of VMS. In fact, when someone pointed out that the letters "W-N-T" are the next letters in the alphabet after "V-M-S," Cutler was rumored to have replied, "What took you so long?" [1]

This is not to say that Cutler heavily influenced the graphical style of interaction of Microsoft Windows. Microsoft had embarked upon the GUI path long before Cutler's arrival. The Windows GUI aside, however, Windows resembles VMS in many ways. Windows is a closed-source, proprietary operating system. Despite numerous calls from its business partners and competitors alike, Microsoft has never released the innermost workings of the Windows operating system. Even if it does yield to market or legal pressure someday, it's doubtful that it will ever release all of the Windows source code. The company acts as though it believes that the Windows source code is the technological equivalent of the family jewels and should be carefully guarded. Whether right or wrong, it appears to hold the belief that by making the Windows source code publicly available, it will give away its competitive advantage. [2]

The makers of the Windows OS also hold to the "bigger is better" approach to software design. Rather than build software as a collection of smaller programs integrated in interesting new ways, they prefer to release increasingly larger, monolithic programs that often suffer from bloat and consume enormous amounts of system resources.

The Microsoft Office suite is one example of such a product. Rather than containing a series of plug-in modules that could be inserted as needed, it tries to load "everything but the kitchen sink" when it starts up. This has led to the need for systems requiring progressively larger amounts of memory. While this hungry consumption of system resources delights memory chip foundries, it forces users to spend money on memory and CPU upgrades that would generally be unnecessary with more efficient applications. Linux, by comparison, has already proven far more frugal in its consumption of resources, largely because of its modular architecture. While any operating system can obviously benefit from huge amounts of memory, Linux can still operate effectively in systems having a fraction of the resources that Windows requires.

Windows most resembles VMS, however, in its design philosophy with respect to the user's fear of computers. Recall that the VMS developers assumed that users consider the computer something to be feared. In designing software for Windows, software developers must go out of their way to make the operating system easier to use for the novice user.

This is a fundamental difference between the Windows and Unix philosophies. Remember that Unix makes no attempt to satisfy the ease-of-use concerns of novice users. Its textual user interface, with its many ways of accomplishing tasks, remains stubbornly resistant to quick absorption by novices. Users must embark upon a comparatively steep learning curve in order to take advantage of its inherent power. They must spend days, weeks, or even months becoming proficient enough with Unix to perform some tasks that can be learned and executed within minutes on a Windows-based system.

Linux attempts to bridge this gap between the novice and the expert user by providing a choice of GUIs such as the KDE and Gnome desktop environments. KDE and Gnome provide Windows-like user interfaces that offer the usual "point-and-click" features and add a few new wrinkles of their own. They form a shield protecting the user from many underlying commands, usually limiting the available options to those best utilized by novice to intermediate users. Experienced users can access the really complex stuff only via text-based, command-line interfaces.

Because of its tremendous flexibility, Linux allows you to operate in a dual world where text-based and graphical user interfaces coexist. It begs an important question, however. Although Linux may provide a Windows-like environment, why not run Windows and get the real thing? If you already have Windows, why would you need something that is almost Windows? As the song says, "Ain't nothing like the real thing, baby!"

One answer is that while the Linux and Windows desktops may look similar, there exists a significant architectural difference between the two-namely, that the Windows GUI is tightly integrated with the underlying operating system. Unlike the X Window System found on Linux-which is just another application program running under the operating system-the Windows GUI and the operating system are effectively a single entity. They are so tightly coupled that any error occuring in the GUI can have disastrous consequences for the operating system. If the GUI should hang for some reason, there is no other way for the user to take control of the system. Virtually all interactions between the user and the operating system are expected to occur via the GUI. There is no other way for the user to operate a Windows system except through the GUI. Contrast this with Linux, where the X Window System could easily be replaced with an entirely different user interface. In fact, the Linux Gnome and KDE environments are exactly that-different desktop interfaces layered on top of the same operating system.

The division between the GUI and the operating system is really the age-old split between form and function. The function is the content of the matter (i.e., what you're trying to say). It is the reason that the application exists. The form represents how it is presented to the viewer. The form is important as it helps deliver the message in a manner palatable to the viewer. But without the function, or content, of the message, the form is an empty blast of hot air. With respect to operating systems, a flashy GUI is meaningless unless you're delivering the functional capabilities that the user desires. In other words, content rules.

[1]The Computists' Communique, Vol. 2, No. 26, June 24, 1992.

[2]Microsoft has made the Windows source code available in read-only form to its partners from time to time. But Microsoft rarely allows any other company to make changes. Microsoft normally makes all the modifications.



Linux and the Unix Philosophy
Linux and the Unix Philosophy
ISBN: 1555582737
EAN: 2147483647
Year: 2005
Pages: 92
Authors: Mike Gancarz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net