Operating Systems (A Treasury Of Computer Knowledge And Links)

[Return to the Main page by clicking here.]

Here I explain what an "operating system" is and why it is so important, then review and provide references on the eligible candidates for a modern computer system.

The Main Divisions On This Page:
o Some History
o Windows NT
o Linux
o FreeBSD
o OS/2
o Envoi




Some History

[or return to the page top]

In the beginning, there was CP/M . . .

A computer--plugged in and turned on or not--is, by itself, a very expensive doorstop. It is a machine built to process information, but the hardware (glossing over minor exceptions such as the ROM BIOS) can do nothing until there is software "loaded" into the machine. The ROM (Read-Only Memory) BIOS ("Basic Input-Output System") is a bit of software carved into hardware--a silicon chip--that automatically starts up whenever the computer is powered on; among other things that software does is tell the computer how to load up another big batch of software called the "operating system." Usually, the BIOS looks first for a diskette in a floppy drive then, if it doesn't find one, loads what it finds in a particular part of a particular hard drive (what is called the "bootable partition" of the "boot drive": the name derives from the image of the self-starting computer as "pulling itself up by its bootstraps").

The "operating system" is a large mass of software that runs all other software you use on your computer. When you start, for example, your word processor, you are actually just telling the operating system to load the processor's main file off a drive and then let that file tell it--the operating system--what things it wants and needs done. The word processor is not running on your computer: it is running on your operating system, which is what is actually running on your computer. The ways a so-called "application program" (or just "application") tell the operating system what it wants are unique to the operating system: they are called the Application Programming Interface (computer nerds love long words) or, more commonly, just the API. That's why you always need to buy programs that will run on your particular operating system.

Operating systems, in turn, have to be written to run on particular hardware configurations. Nowadays, there are really only two classes of hardware configuration: the so-called "Intel" type--named after the foremost producer of CPU ("central processing unit") chips of that kind--and the "Mac" or "McIntosh" type, named after the latest generation of Apple computers, which are the foremost (but not only) users of that kind of chip, a Motorola make.

The market share of non-Intel systems--Mac and similar (Be, for example)--is persistent but not large, perhaps 15%. I will not here at all address such systems, not because of any inferiority on their part but because they are very different from Intel systems and require a complete treatment of their own, which they may deserve on their merits but do not on their market share.

Operating systems for "personal computers" (as opposed to the massive "mainframes" that run huge operations like banks' check-processing facilities) began, in the Intel world, with something called CP/M. A most curious history, full of quirky twists and turns that would be hard to swallow as plot devices in a bad novel, led us to the world we find today. In that world, there are, apparently, several choices of Intel-based PC operating systems. I say "apparently" because several of those choices, all from Microsoft, are not really choices at all.

The successor to CP/M was DOS ("disk operating system"), which was Microsoft's first and determining product. DOS was, within the limitations set by Microsoft's general programming ineptitude, a passable operating system for its times. Its foremost disqualification as an operating system for today is that it is not a "multithreaded" operating system. It works in a simple way: it goes from A to B to C to D in running any program it is asked to run. By contrast, a "multithreaded" operating system goes from A to B in running program #1, then stops and goes, perhaps, from E to F in running program #2, then stops and goes from C to D in running program #3, and so on and so forth; in between, it memorizes just where it was when it stopped for any given program, then--when that program's turn comes up again--picks up without missing a beat. Owing to the mind-boggling speeds at which today's hardware works, that astoundingly complex round-robin of program stops and starts can be effected so rapidly and smoothly that to the user--you--it looks just as if all those programs were operating simultaneously, in parallel. Each individual program is a "thread" of operation; in fact, programs designed to operate on multithreaded operating systems can themselves run numerous threads, making it possible, for example, for your word processor to be delivering pages to a printer while "simultaneously" allowing you to be editing other pages. (Multithreaded operating systems are thus also called "multitasking" systems, for obvious reasons.)

The modern computer world demands multitasking capabilities: we need to have our fax ready to receive at the same time our word processor is running (and, perhaps, "printing" pages to that fax while it is listening for incoming messages or sending out some), while we have open a spreadsheet from which we are going to "paste" some portions into the document we are word-processing--and, as the King Of Siam was wont to say, "et cetera, et cetera, et cetera."

An operating system, to truly be multitasking, must be so designed from the ground up. The complexities that need to be addressed are staggering. But to design an entire operating system from the ground up is not a six-week task for two guys in a garage: it is a truly vast and extended enterprise. So, between DOS and the arrival of true, from-the-ground-up multitasking operating systems, there came . . . Windows.

Windows was Microsoft's first answer to the need for multitasking. But what it was--and, in several incarnations, still is--was a hacked version of DOS. A real multitasker has to have ways of deciding which running programs need how many slices of CPU time: how often they need to get their licks in, and for how long at a shot; and it has to be able to continually and on the fly readjust those priorities. Windows did not do that; it made its decisions on its programmers' best guesses and various kludges. That, understandably, is why it did and does "crash" so often.

Microsoft and IBM had originally worked together. IBM needed an operating system for its newly designed "personal computers" and the folks who had done CP/M weren't responding, so a brash kid named Gates snagged the contract and coughed up the first version of DOS. When the need for multitasking operating systems became clear, IBM and the now-grown-huge Microsoft--the two then still happy partners--began a project to create a totally new successor to DOS. Viewing DOS as "the first" operating system (since Microsoft hadn't done CP/M, it didn't count for them), they named their new joint project OS/2--the second operating system. Eventually, Microsoft smelled bigger bucks in going its own way, and left the partnership to go on to foist Windows off onto an unsuspecting public. While IBM struggled to finish up OS/2 as a real and decent operating system, Windows, by getting to market first, achieved rapid dominance. (Plus IBM, regardless of how good their products are technically, and virtually to a one they're good, couldn't sell lifesavers to drowning men.)

Since, despite their continued immense market share, most flavors of Windows are just shaky, kludged-up DOS (and soon to be phased out by Microsoft anyway), any contemporary computer user who has an IQ larger than his or her hat size will use only a true inherently multitasking operating system. That reduces the realistic choices to just four. They are: Windows NT, Microsoft's first real multitasking operating system; OS/2, IBM's ultimate realization of that quondam joint project; and one or the other of the closely related PC Unix-type systems, Linux and FreeBSD. I now look at each of those possible choices.

But first: I have lately discovered a fine web page that summarizes operating-system principles in a little more depth than I went to here, but remains readable by an intelligent beginner. So, I include this link to Dr Derek Hill's fine university course material on Operating Systems, from a British University and intended for students. Now to the choices . . . .



Windows NT

[or return to the page top]

Because of Microsoft, many people just assume computers crash all the time. But that doesn't actually have to be so. -- Tom Steinert-Threlkeld, columnist, Inter@ctive Week Online

Why Windows NT Server 4.0 continues to exist in the enterprise would be a topic appropriate for an investigative report in the field of psychology or marketing, not an article on information technology. Technically, Windows NT Server 4.0 is no match for any UNIX operating system, not even the non-commercial BSDs or Linux. A manager is not expected to have the technical expertise of a systems administrator with 15 years of industry experience. There is no shame in not having the facts, only in being ignorant of such facts, which will in the end cost your employer, and eventually all consumers, money. The aim of this article is to give you these facts, and prove that they are facts, because facts are not debatable. -- John Kirch, Networking Consultant and Microsoft Certified Professional (Windows NT), article entitled Microsoft Windows NT Server 4.0 versus UNIX, 15 September 1998.

As you see, expert opinion from anywhere farther than 20 miles from downtown Redmond, Washington is clear (the article cited above is merely one representative sample of a vast literature): NT, Microsoft's "premier" entry in the true multitasking field, is simply not up to Linux (or OS/2). Further, since NT is so different from all other Windows flavors, most "Windows" software doesn't actually run under NT; you need NT-specific software (so Microsoft's market dominance is not much of a consideration in selecting your operating system).

Moreover--and this is my editorial opinion--the "FUD" (Fear, Uncertainty, Doubt) and other similar techniques (at least some of which the United States Department Of Justice feel were and are actually illegal) Microsoft has used in expanding its market share, the unfair advantages it has undoubtedly taken of its secret inner knowledge of its own operating systems to design application software, and many another point too familiar to veterans to belabor here, mean that as seen from this corner Microsoft, and thus NT, is a terrible choice to make unless that choice is strongly forced by external circumstances, which for the personal desktop it is not.

Furthermore, you should be aware that at least some observers see NT as so ill-programmed that it is crumbling under its own weight (notice that the release of the long-promised version 5.0 has been pushed downstream to an indefinite date) and will truly collapse within the next half-decade or so, making the suckers who went with it ready then for yet another Microsoft-mandated total changeover of operating system and--necessarily--all software (for which Microsoft will no doubt have conveniently ready replacements at several hundred dollars a throw.)

Disrecommended. Period, the end.



Linux

[or return to the page top]

To understand Linux, you need to understand Unix, of which it is a dialect. Unix is an operating system first developed for large "mainframe" computers, most or all of which sorts of computer still run it. Now one of the reasons that there were and are so many flavors of Unix--AIX, BSDI, Digital UNIX, FreeBSD, HP-UX, IRIX, Linux, NetBSD, FreeBSD, Pyramid, SCO, Solaris, SunOS (just to name the more prominent ones)--is that no one "owns" Unix the way Microsoft owns NT or IBM owns OS/2: the basic code is open. Thus, each supplier of a flavor of Unix modifies the basic code a bit, purportedly expanding or improving its operation so as to create an incentive for users to select that supplier's particular "brand" of Unix. Programs written for one dialect may run unmodified on another, but also may need minor changes to accomodate a slightly different API. Overall, however, virtually every flavor of Unix is as solid as a rock.

(The latest news about Unix--and it's very important--is that a consortium comprising virtually all the major Unix players (IBM, the last big holdout, has just joined) is actively developing a standardized Unix, combining the important elements of each "flavor" of the consortium members. The reason that is critically important is that such a single Unix means really major competition for Windoze in the corporate world. What it might mean to you and me on our desktop PCs remains to be seen, but important to computing it assuredly is.)

Now once upon a time, while Unix was strictly a mainframe language, it occurred to various folk that some adaptation of it would make a pretty fine PC operating system. From that inspiration have come the "desktop flavors" of Unix, with Linux and FreeBSD in the fore. But the fun doesn't stop there: each of the desktop flavors has, in turn, its own "distributions," which is to say sub-dialects.

If, at this point, you're getting dizzy and thinking that all these variants are too much to deal with, relax. They all have so very much in common that you can take your pick of any one and be perfectly happy, knowing that corresponding flavors of application software are more or less equally available for all distributions.

Oh, and have I gotten to the best part? With minor caveats, Linux, and just about everything that runs on it, is FREE!! Right: free, as in no cost. The caveats are primarily that for some distributions there is a modest charge for, at the least, the cost to the distributor of putting everything on a nice, clean, new CD and shipping that CD (or those CDs) to you. But, if you have the time and patience for long downloads off the internet, you can (legally!) get absolutely everything you need for operating--the operating system and uncountable programs large and small--100% for free.

OK, we've told you enough here; now it's time for the experts to have their turn. First off, you should visit Linux HQ, the quintessential fount of all Linux knowledge. From that one source alone, you will find, laid out neatly and logically, links to all the rest of the things anyone might want to know about Linux. But, for the inveterate line-jumpers in the crowd, here are a couple of other pointers. The Linux Documentation Home Page is a massive collection of information, and links; English-Language Linux Distributions gives you a somewhat closer look at the more readily available "distributions" of Linux; and Linux Desktop Applications lists and briefly describes some of the major applications that run on Linux (and also has other Linux information and yet more links).



FreeBSD

[or return to the page top]

From the FreeBSD FAQ ("frequently asked questions"): "Briefly, FreeBSD 2.X is a UN*X-like operating system based on U.C. Berkeley's 4.4BSD-lite release for the i386 platform. It is also based indirectly on William Jolitz's port of U.C. Berkeley's Net/2 to the i386, known as 386BSD, though very little of the 386BSD code remains. A fuller description of what FreeBSD is and how it can work for you may be found on the FreeBSD home page."

Like Linux, and in perfect accord with its name, FreeBSD is free. Whether you would want Linux or FreeBSD is not a question on which I feel competent to offer advice; I have read things suggesting that FreeBSD is more for those folk who are more deeply immersed in the technical aspects of computers and computing, whereas Linux can be used to good avail by almost anyone, but that may be an exaggeration or mis-statement; Investigate both and draw your own conclusions. The one thing I can reliably tell you is that each is an excellent, stable, and much-respected operating system.



OS/2

[or return to the page top]

Year in and year out pundits--whoever and whatever they are--announce the immediately imminent demise of OS/2; that many of those pundits are writers in the employ of publications that get a lot of advertising money from Microsoft and not much from IBM may be only a coincidence.

The basis for those ill-founded rumors is that IBM has largely conceded the desktop market for operating systems to Microsoft. IBM tried to market OS/2 to the general computing public as a superior replacement for Windows, which it very, very assuredly is. But IBM's marketing ability is sub-zero (their OS/2 television commercials won what amounts to the booby prize in annual awards ceremonies); trying to get IBM to market a product has long been compared to trying to teach an elephant to tap dance. IBM traditionally owned the mainframe market: huge dollars, and buyers with no realistic alternatives. "Marketing," to IBM, long meant telling the customers what the newest model they would need to buy was and how much to make the check out for. Period. Needless to say, IBM--despite a vastly superior product--couldn't make the least dent in Microsoft's desktop dominance, and eventually they stopped beating their corporate head against the wall and gave up (and said so).

That, however, does not at all equate to "adandoning" OS/2. Let's get this part clear: just about every bank ATM in the world runs OS/2; the master airline scheduling system runs on OS/2; the Trident nuclear submarine force depends on OS/2; and there's lots more. OS/2 is in no danger whatsoever of being "abandoned" by IBM. Whatever its future on the desktop personal computer, it will be around and supported by IBM for many and many a year to come. (IBM has a deserved reputation for never abandoning "legacy" softare anyway.)

If there is any problem at all developing, it is with third-party support for OS/2. It is not even software: if any perceived niche, large or small, remains unoccupied for any length of time, a developer will produce a product for it. With OS/2 on the desktop being a somewhat small niche (but only by comparison with the number of poor souls running Windows), the really big development houses, with their enormous overheads, aren't much interested--but so what? Much excellent software, large or small application, has historically come from smaller shops; OS/2 continues to be, and will continue to be, well supplied with software.

The real hurt is developing in the hardware arena, or more correctly the hardware-support arena. To operate a particular piece of hardware, an operating system has to have a special piece of software called a "device driver" which is unique to both the operating system and the hardware itself. Device drivers are normally written by, or under commission from, the makers of the affected hardware, but they are among the most difficult and complex kinds of programming that there are. Nowadays, fewer and fewer hardware makers are bothering to spend the money to develop (or have developed for them) device drivers for OS/2, seeing the potential market as being too small to justify the not-negligible development costs. There are certainly private individuals dedicated to and deeply knowledgeable about OS/2 who would quite likely be both willing and able to develop on their own OS/2 device drivers for new hardware items (either as a public service or in the expectation of earning a little money by selling the software to OS/2 users); the difficulty is that to develop a device driver, a programmer requires immense and detailed knowledge of the subject hardware, and few if any companies are interested in disclosing such intimate details of their proprietary products to outsiders (but whatever happened to nondisclosure agreements?).

Nonetheless, there are many stalwart supporters of OS/2 in the hardware world. As the overall number of OS/2-supporting hardware makers shrinks, it becomes more reasonable for the ones who remain to continue developing for OS/2, because their market share is necessarily going to be very high. Eventually, a stable situation is reached, and top-quality hardware usable under OS/2 continues to be forthcoming. In specifying my "ideal computer," I was constrained in hardware selection in only one small area: a sound card--and that arena is changing even now.

Now, on to the experts. While IBM does, of course, have an OS/2 site (which you should visit), the best starting point is the OS/2 SuperSite. And, although it is a link on the front page at that site, here is a line-jumper's link to the well-known Guide For New And Potential OS/2 Users, maintained by OS/2 maven Timur Tabi.



Envoi

[or return to the page top]

If I was you, buddy, I'd stick to dat dere frittata. -- waiter in venerable San Francisco Italian restaurant.

If you are not now running OS/2 or Linux or FreeBSD, it's time to do whatever is needful to change over. If you don't, you will be awash in the sea of Microsofistry, watching your computer crash more and more often as applications become more and more demanding and critical, and spending more and more money at Microsoft's whimsical behest, whenever they think it's time to milk the cows again.

From among the three, if I were starting afresh I'd likely go with Linux. I'm running OS/2 now, and have for years, and have no immediate plans to change. If the device-driver problem ever becomes acute enough to be a perceived discomfort (though I don't think it will), I'll move to Linux.

Doesn't microsoft mean "very small and limp? -- anonymous




[Return to the Main page or to the top of this page]

Comments? Criticisms? Questions? Other links to suggest?

Please, e-mail us by clicking here.


(Last updated: 15 January 2000.)

This web page is strictly compliant with the W3C (World Wide Web Consortium)
HyperText MarkUp Language Protocol, v3.2 ("Wilbur");
click on the logo below to test us!

So, if your browser experiences any difficulties with this page,
upgrade or change that browser!