THE SOAPBOX »»»»»»»»»

Some Thought on Operating System
or
Why Windows is Even Worse Than You Thought

So anyway, this last week I upgraded my PC (Thanks Dad!) with a new motherboard and a new hard drive. I took the upgrade as an opportunity to install a new operating system. My system now dual-boots to Windows or Oberon System 3. Let me state for the record that I vastly prefer the latter. This article will explain why.

First of all, let's get some background out of the way. An operating system sits between the programs you run and the 'bare metal', your computer's hardware. That way, the application programmers can focus on writing applications, and don't have to mess with the details of accessing disk sectors, or checking interrupts, etc. Early operating systems were simple, because the underlying hardware was simple, just card readers, teletypes, and line printers. These days there are lots of different hardware add-ons a machine can have, so the operating system must be able to deal with most (if not all) of them.

In the old days operating system designers didn't consider things like consistency, model, user interface, or ease of use. In the old days no one considered those things; only two things counted: money and time. Consequently, early OS design was kind of a casual affair. Later, computer scientists created all kinds of features, different types of kernels (exo-, micro-, cache-, etc.), different models (e.g., component-based), and user interface standards (to ensure that the OS has a consistent UI). A difficulty arises when a "new" OS is an extension of a previous design; in that case the new version is usually "backward compatible", meaning that it can still run the old programs. In order for it to do that, the OS must include code from the previous version. If this revising goes on for many generations without check, the OS gets larger and larger, as it includes older and older code. Windows fits into this category.

The genealogy of Windows goes something like this: Windows 95/98 is derived from Win 3.1, which is based on Win 3.0, which was preceded by Win 2.0 and Win 1.0. Win 1/2/3 all ran on top of DOS, and were obvious about it. Windows 95/98 still runs on top of DOS, but it tries to hide it from the user. DOS's interface was based on CP/M (I think). Confused? So is the Windows' design. Now, backward compatibility is a good thing, no doubt. It would be awful if every new OS version couldn't run any of the old programs, or read the old disks, etc. The "code explosion" problem arises when the designers for the new OS version include huge chunks of the previous system's code, without out changing or even looking at it. In a well designed OS, the entire system should be reevaluated at each revision. Redundant code is eliminated, new techniques are applied, and the new version generally works as well as (if not better than) the previous version. It runs on the same hardware at about the same level of performance. The new code is probably larger the the previous version, but it certainly is not twice as large. One must follow this design philosophy from the very start, before the OS gets too big to evaluate. Windows is too big, and it's too late for Microsoft to do anything about it.

Enough complaining, now I'm going to give my Oberon spiel. I love Oberon. This is what an OS should be: fast, small, and consistently designed. Lets cover each of those in turn, shall we?

Speed: Oberon rips. From the time I turn on my PC to the moment my desktop appears on the screen is less than 13 seconds (including the 3 second delay in the boot menu). Granted, my machine is a bit over the minimum requirements: I have a Cyrix based PC running at 200 MHz, with 32 megs of RAM. The minimum is a 386 with 4 megs. I believe the minimum for Windows 98 is a Pentium with 32 megs. That speed isn't just at startup; it applies to the system on a whole. I have have yet to see an application "load". It's never more than an instant from when I click the button to when the window appears, ready for use, even when there are already several other windows open.

Size: I installed Oberon in a 200 meg partition. The complete OS with all optional packages installed, is 23 megs. The minimum system (which includes networking) can be installed from a single bootable floppy. Compare/contrast this with the 200+ megs/CD-ROM install for Windows. Also, none of the executable files exceed 100k in size; the largest files are part of the comprehensive documentation at ~200K.

Consistent Design: Everything in Oberon works just right. Oberon is a document-based system. Nearly everything is the system is either a gadget (a visual or non visual control object) or a document. Documents can contain gadgets, and often gadgets contain documents. For instance, a text editor gadget contains a text document, but that same document may also contain gadgets other than text (e.g., buttons). Documents can be saved to disk and restored at will. Since everything is either a document or a gadget, editing is extremely simple. For example, the desktop is a document; mine is called Andy.Desk. You can have multiple desktops on disk (or even on the display) and you can modify the desktop while it's open. The default desktop includes buttons for maximizing the desktop, saving it to disk, etc. as well as a Finder, a button that, when clicked, lets you select any open window, or execute a command. If you want, you can move the default buttons around, change their size, etc. you can do so, whenever you want; there is no distinction between edit and use modes in Oberon. You can add gadgets to the desktop (or any other document) by selecting the gadget from the Gadget.Panel application. Gadgets also have macro capabilities; a button, when clicked, can execute a system command using the selection from a list box as the parameter. There are also more complex gadgets; you can insert a calendar and clock in a text, or a CD player on the desktop.

There's more that I'd like to cover; things like stability, documentation, ease of use, but I think I've said enough for now. Granted, Oberon does suffer from the same malady as other out-of-the-way OSes; lack of a strong user base, and therefore, lack of major application. However, the system seems to me to be completely usable for most every-day tasks (and lots of not-so-every-day ones) so I thank it's inceptors, Professors Wirth and Gutnecht, for what one reviewer called, "A glimpse of the future."

Go to the Oberon System 3 Homepage at ETH Zurich

============================================

Copyright © 2000 Andy Clifton