Home | Linux |     Share This Page
Linux Base  

All content Copyright © 2003 - 2005, P. Lutus

The main page for Linux-related issues at arachnoid.com

Background | Operating Sytems | The Provocation | The Turning Point | Personal Notes | Linux-related Links

(double-click any word to see its definition)

Not to provide too much history, but ...

Von Neumann
John Von Neumann
The basic distinction between a computer and an ordinary machine is that a computer can be instructed to do something new, something not in the mind of the original builder. And, in a historical departure from machines that were almost computers, instructing a computer doesn't require a hammer or a blowtorch (although it sometimes seems that way).

The first computers were programmable by way of plugboards. A new problem required a new pattern of wires — think of an old-fashioned telephone switchboard, except more complicated. Also try to imagine the hours needed to change from one already-defined task to another.

Then computer pioneer John Von Neumann got the idea to put the instructions, the program, into the computer along with the data. He realized this would mean a great improvement in the speed with which the computer could change tasks. Once this change was in place, it became obvious that a program in the computer's memory could perform decision branches — the program could contain volatile state information, and it could decide on the fly what to do next. It was at that point that computers became something more than calculators.

Von Neumann was a pretty smart guy and he threw great parties. He died far too young.

Pretty soon computer programs became distinct from computers, became increasingly portable and abstract, and some of them ran successfully on more than one kind of computer. In the next evolutionary phase, programs became distinct from each other. Some programs met specific needs (applications), some were used to run or create other programs (interpreters and compilers), and some were used to orchestrate the behavior of programs and/or computer hardware (operating systems).

The last category, operating systems, are suites of programs meant to control the overall behavior of computers and networks of computers. Since this is not a mystery novel, I'll give away that operating systems are the topic of this page.

Operating Sytems

Linus Torvalds

Bill Gates
After a number of false starts toward a useful operating system, some bright people created the first really great operating system, Unix. Unfortunately for the world at large, Unix was a property as well as an idea, and since that time, the specter of Unix as a property has totally overshadowed Unix as an idea.

Many people saw this change and realized the group of ideas known as Unix was very important to the future of computing. Several projects began with the intent of creating a "free" Unix, one unencumbered by patent and copyright burdens. There are a number of existing versions of this idea, but one has come into relatively wide acceptance — Linux. Originally the project of a Finnish college student (Linus Torvalds), it is now (at the time of writing, Winter 2003) supported by a comparatively small, loose-knit, worldwide group of programmers and users, and every indication is that its user base is about to expand greatly and Linux may become a very important part of computing.

Meanwhile, back at the ranch ...

You may have thought the above would summarize the history of operating systems for small computers — idealistic programmers writing code for free, hoping to change the world. No such luck. In parallel with the above history, a purely commercial project called Windows grew up from its modest origins as a way to transfer files from a running application to a floppy disk — hence its name, Disk Operating System (DOS).

Unlike Unix, Windows was not originally designed and written to be a powerful operating system. Windows basically evolved from a very modest application meant for very modest responsibilities. This evolution progressed through the expedient of tacking things onto DOS that people said they wanted, for decades. This is why the latest versions of Windows still bear many of the disfiguring scars of its birth and early childhood (examples: support for drive letters, overall extreme unreliability and vulnerability to attack, a general lack of coherence and useful utilities).

As is so often the case in free markets, and in accord with a perverse economic rule, what is generally acknowledged to be the worst operating system of any of those commonly available has also become the market leader. In fact, the market is so saturated with Windows installations that it is rather silly to describe it as a market with a leader and followers. For all practical purposes, there is Windows, period. Most computer owners don't even know there are alternatives to Windows, and most software developers, in order to survive, behave as though this is true (by not bothering to write versions of their applications for any other operating system).

But take heart, and read on. This is all about to change.

The Provocation
No history is as simple as its sound bytes, and this is true here. There have in fact been several distinct provocations that have led to the historical turning point that is the next topic:

  • Microsoft's realization that it didn't have to compete any more. This happened when Microsoft's customers began saying "Yes, yes, do it again!" to anything Microsoft did, however outrageous.

  • Microsoft's introduction of the Windows Registry (a single master file that replaces the older system of individual configuration files), which in a stroke did away with:

    • Any chance for a typical end user to control his system's configuration or copy a configuration from one machine to another.
    • Any robustness in the face of a bad write operation (any significant corruption in the registry requires the reinstallation of the entire operating system and all applications), one cause for Windows' infamous unreliability. To say it simply, if your system is writing to the registry and the power fails, you may well be reinstalling Windows and all its applications.
    • The ability to replace or significantly upgrade the operating system without having to reinstall all applications at the same time.
    • Any illusion that users might have had that Microsoft knew of, or cared about, their needs. This is because the Registry in essence shifts control of the user's system away from him to Microsoft and its corporate partners.

  • Microsoft's introduction of "Product Activation," which in essence means the opening of a communication channel between each and every purchaser of Windows or MS Office and Microsoft's corporate headquarters.

    • In order to own and use Windows or any other significant Microsoft product, users must contact Microsoft to get the software to run.
    • In order to change hardware significantly, users must contact Microsoft.
    • In order to change computers, users must contact Microsoft.
    • In order to sell the software, users must ... you get the idea.

    This communication channel is mandatory, extralegal, and in the simplest terms it means Microsoft knows what you are doing with your computer. You may care about that, you may not care, but the point is, you don't get to choose. In other words, "Where do you want to go today? Actually, we don't need to ask, because you have to tell us!" There is more on this topic at Boycott Microsoft!

  • Very serious security flaws in Windows. Over the past several years, Windows security warnings have become an almost weekly occurrence. Windows machines are so easy to take over that, in a recent ingenious scheme, thousands of end-user Windows computers have been shaped into an illegal spam mass-mailing network under the control of criminals intent on turning the Internet into a huge advertising distribution organism, so far with spectacular success. According to recent estimates, more than half of all Internet traffic consists of illegal spam messages.

  • Microsoft's shift away from a tradition of introducing new or improved products, to its present marketing model in which the same old software is sold to users again, or "licensed" to them with an unending schedule of costly license fees. In many ways this last provocation is at the heart of the present worldwide change, the Turning Point.

The Turning Point
As I write this (Winter 2003), a worldwide shift is underway, a shift away from Windows toward Linux. This is happening in spite of the fact that commonly available Linux distributions are generally agreed not to be appropriate to the system-administration skills of typical end users, especially when using the Windows marketing model of "user buys, installs, and maintains."

  • Many US federal and state governmental agencies and corporations have adopted a policy of dumping Windows as a way to save money and improve the efficiency and security of their computer systems.
  • Governments and corporations in several European countries (France, Germany, Great Britain, others) have made a policy decision to drop Windows and adopt Linux for a variety of reasons, mostly economic.
  • Japan, South Korea and China are shaping a consortium meant to develop China's "Red Flag Linux" as a replacement for Windows, mostly for economic reasons but also to improve system security.
  • Several US companies are creating user-friendly Linux distributions meant to reduce end-user adoption problems, and to compete with Windows at retail outlets.
  • Large retail chains like Wal-Mart are now offering personal computer systems with Linux, instead of Windows, preloaded. This move away from Windows is seen as a primary factor in the low cost of these systems.

These projects have not yet made much difference when comparing Windows versus Linux installations — that is still a huge ratio. But a closer look at the numbers shows something interesting, and coincidentally reveals why some knowledge of Calculus is useful in everyday life. Even though the number of Windows installations is still very much larger than for Linux, the rate of change in Linux installations (that's the first derivative of the ratio of Windows vs. Linux machines) has become quite noticeable, and it is the basis for saying we have arrived at a historical turning point.

No one should think a decision to switch from Windows to Linux can be taken lightly. This is because computers, especially networked computers, are more efficient if they all run the same software. This "snowball effect" is behind the success of Windows to the present — at its inception it filled a vacuum, and by the time there were alternatives, it had become a de facto standard that no one wants to replace without very good reasons.

The "snowball effect", the interdependence of computer manufacturers, software developers and operating system vendors, which ordinarily would lock the entire system into a single operating system for reasons of efficiency, makes the present shift away from Windows all the more remarkable. Put simply, it says the deficiencies in Windows are so onerous that a worldwide change of direction is painful but necessary.

Does this mean the end of Windows and/or Microsoft? No, not at all. Microsoft will survive this change by becoming a responsible software company that must justify itself to each and every end user, something that has not been true for many years.

The turning point also means the end of Microsoft's problems with software pirates, because after this corner has been turned and Linux is the standard operating system, no one will want a copy of Windows, even a free one. There will be no point in trying to hack Microsoft's elaborate security scheme, because copying a typical Linux disk is entirely legal and a better choice overall.

Personal Notes
I am sure my perception of Windows is shared by many software developers. At first, the advantages of having a unified target platform were obvious and exceeded concerns about side effects. Now, of course, the problems created by allowing one company to dominate the market are obvious. And Microsoft has acted in a number of ways that assures — nay, hastens — its own downfall. It seems that the needs of customers is the least important item on a list of priorities, a list headed by continued profitability.

It is no exaggeration to say that Microsoft is, against its own long-term interests, the biggest single factor in the adoption of Linux. If I were to write a fictional account of this change, I might create a caricature of a software house that, confronted by worldwide dissatisfaction and outrage, would decide to stop improving its products and instead try to sell the same products over again — and raise prices, too. The only problem with this idea is no sane editor would buy such a ridiculous scenario. You see, to produce suspension of disbelief, fiction has to be plausible, even if reality isn't.

I've been writing software for quite a long time. My first significant commercial project was Apple Writer, marketed under license by Apple Computer in the days of the Apple II. That program was written in assembly language, which some of you may know is utterly non-portable and very difficult to maintain. Which leads to this ranking of software development strategies (listed in reverse order of desirability):

  1. Write programs in the native tongue of one processor (assembly language). Very fast, but completely nonportable. Such programs are doomed to premature retirement.
  2. Write programs in a proprietary language supported by only one vendor (Visual Basic, etc.). Fine as long as that vendor rules the world, and as long as the vendor doesn't try to declare the language obsolete in order to force people to buy something new (which just happend to Visual Basic).
  3. Write programs in an efficient, widely accepted language like C or C++. Good results as long as one doesn't try to create seamlessly portable programs.
  4. Write programs in a portable, widely accepted language not controlled by a single vendor (which might remain true for Java unless its creator, Sun Microsystems, does something foolish). Such programs run on most platforms unchanged (the good news) but may not run particularly fast (the bad news).

It hardly bears mentioning that I have tried all of the above strategies. Then, several years ago, it dawned on me (perhaps later than it should have) that Microsoft was not the future of computing, that they would soon be standing in the way of any further progress, yelling at the top of their corporate lungs about how unfairly they were being treated by their ungrateful customers. Once I had this mini-epiphany, I set out to rewrite all my programs in Java so that my programs would run on any operating system, not just Windows. I reasoned that Sun (the inventor of Java) would encourage wide adoption of Java by relaxing its control over the language, to the degree that Java would continue to exist whether or not Sun did.

I took on this conversion project primarily to help people (including myself) move away from Windows, at a time when that was not a particularly compelling idea. Since this project began I have converted most of my application titles from one or another Windows-specific language to Java (and lest you think this is a shameless commercial plug, all these programs are free):

  • Arachnophilia, a very popular Web page development environment.
  • PLCash, my stand-in for (not really a feature-by-feature replacement for) Quicken.
  • JTides, a tidal prediction program with nice graphics, popular among sailors.
  • DataProspector, a database front end that had a different name and feature set under Windows.

Since the beginning of this conversion effort, I have written some new programs that don't have an earlier Windows incarnation:

  • SlideProjector, a small utility for public presentations meant to display graphic images and coöperate with a multimedia projector (and, if desired, a PDA to control the show).
  • Satellite Finder, another small program for accurately pointing satellite dishes.

Finally, I left one program behind in Windows purgatory: AboutTime. This very popular Windows-only utility synchronizes the system clock with Internet time standards and functions as a local time server as well. I have been asked by the many users of this program why it hasn't been rewritten to work on Linux. The answer is that Linux already knows how to do this — time synchronization is such a basic necessity that civilized operating systems include it by default.

On that topic, what Windows users need to realize is that many expensive Windows add-ons are regarded as either normal components of a useful operating system (like the above example), or gadgets one shouldn't need (programs meant to rearrange the contents of one's hard drive to get around basic filesystem design flaws, or programs meant to stop viruses from infecting a badly designed operating system).

This section of www.arachnoid.com will grow with time, and with Linux.

Linux-related Links

Home | Linux |     Share This Page