From Chicago to Cairo

July, 1996

Everybody who uses a PC deals with some sort of operating system, or an "OS" in the hacker vernacular. This is the program that runs all the other programs. I have programmed several machines in my career that did Not have an OS, and I can tell you, it is not a lot of fun. An OS takes care of a huge amount of work that otherwise you would have to deal with yourself. An OS makes things much easier to use, and a whole lot more fun.

The very day that the IBM PC was introduced, it came with a choice of two different operating systems, neither of them developed by IBM. There was Microsoft (actually, Seattle Computer ) DOS, and there was the University of California at San Diego P system. The former was practically given away, or maybe cost twenty bucks, and the latter sold for over two hundred dollars. The former was introduced with a full suite of programs that it would run right out of the box, and the latter pretty much handed you a Pascal compiler and told you to have a ball. The former was distributed by a company that really wanted to make some bucks, and the latter was a government run university with all kinds of committees and political strings to deal with. The former still exists, and the latter has been extinct for about a decade.

Over the years, there have been quite a number of OSes developed to run on the Intel family platforms. DEC tried to make its Rainbow system a standard, and practically lost the company. Microsoft started a second company named the Santa Cruz Operation to distribute Unix for the PC, and that company is still viable, and now is more or less independent of Microsoft, and even owns the Unix trademark and development rights (originally owned by AT&T).

There are several OSes designed specifically for the Real Time Control world that run on Intel platforms. I had reason to make a search for what was out there last year, and found over five different ones that were not DOS based, although most of them do recognize the DOS file structures, and are generated by the DOS compilers. A Real Time OS is characterized usually by the ability to run several different processes, or tasks, at the same time, using either a timeslicing technique, or a priority based system, or some combination of both. They contain several different mechanisms for one task to communicate with another task, such as message queues, semaphores, and shared memory regions. Because these OSes serve a rather nitch market, they are often quite expensive. The cheapest that I found was about $500 (produced by some crabby guy in a garage), and this can range quite easily up to about $50K for the top of the line Wind River. You get some idea of the size of the company if you call the sales line and the president of the company answers the phone.

Microsoft enhanced DOS for about 10 years while it was developing Windows. When Windows 3.0 finally became ready for prime time in what? About 1990, they had a reasonably stable product that would do what it was asked to do, most of the time, in the commercial marketplace where the system would be distributed to something like 50 million sites, running on computers from a thousand companies, put together in maybe 100,000 configurations.

What it didn't do was two things. First, it still ran in the older 286 mode of operation, which means that no matter how much physical memory you had in your computer, the programs could only make effective use of a small amount of it. First, you had to deal with the segmented addressing scheme imposed by the 286 architecture. Second, you had to deal with the 64K stack into which went all the operating system defined widgets. This latter was improved to 128K in Windows 3.1, but my biggest beef in dealing with Windows was that I would crash a couple of times a day if I was not exceedingly careful, and those crashes were created by the nature of the 16 bit OS.

Microsoft of course recognized the problem, and came out with two fixes. First there was NT, and then there was Windows 95. I use both, and they each currently have their respective uses. And that is what I want to talk about for the rest of this epistle.

First, some gossip. The trade rags are constantly atwitter about what is Microsoft really trying to do with these two products. Some believe that in a year or so, only one of them will still exist. Some believe that they really do have their respective nitches. I personally think that both of these statements are true. The second piece of gossip has to do with the name NT, or more precisely, Windows New Technology. The development of it was headed up by one David Cuttler, who earlier in his career worked at Digital Equipment Corporation, and developed their flagship OS named Virtual Machine System, or VMS. The really weird thing about all this is, if you take the letters VMS, and replace each of them with the next sequential letter in the alphabet, you get ... WNT.. Shades of HAL.

I will assert that W95 is best suited for the home, and (W)NT is best suited for business, most of the time. NT is considered to be one of the most robust OSes ever developed. I have been using it since before Christmas, and I have never really crashed it, although I did pull the plug on it a couple of times before I better understood how to use it. I have personally never crashed my home machine since it has been running W95 either, but then I am much more gentle at home than I am in the office.

W95 was designed with games and compatibility in mind. If you are a home computer user, and have already spent a small fortune on software and maybe even plug in boards, you are not going to be interested in replacing them all just because you want a new operating system. The problem and the advantage of NT is, they sacrificed compatibility for robustness. If you have a special adaptor board, you better have a driver for it, written to the NT standards (known as VxDs) or your board is going to be just a heat generator. NT is not going to allow any software to touch the actual hardware of the machine without going through a VxD, because that is one simple way to make a machine crash. While NT does support many many hardware configurations, it is nothing like the support given by W95. W95 is going to take the risk and let your older drivers twiddle with the hardware directly, if that is how they were written, although it is very happy to accept the VxD drivers also, and it came with drivers for just about all current hardware out there.

Both OSes are 32 bit systems, which mean that programs written under them can directly address over a Gigabyte of physical memory without jumping through hoops. While W95 still does have a stack space limitation, it is so expansive that I have yet to run into the problem. NT has essentially an infinite stack, limited by the size of memory. For the programmer, you no longer have to worry about arrays being more than 64K, or large memory segments exceeding some other silly boundary, or the different memory models that the older systems made you deal with, or near and far pointers. Not having to worry about all this should product less buggy code.

Both system can be set up to let you log in and identify yourself. W95 logins however can be easily avoided. NT logins are mandatory, and there is a superuser account, named the administrator, that can grant rights to all the other accounts on the system. What this can mean for the home system, is a way to keep your stuff private and off limits from the other people who use your system. For instance, you may have some kids who want to play games, but are maybe a little too inquisitive about your personal finances, or maybe you don't want everybody using your modem and surfing the net when you are not around. With NT, you can prohibit access to these features on your system, while still giving yourself total access to everything there. In industrial situations, where there are real security concerns, such as personnel or company sensitive data, this data can be locked up pretty tight with NT, but short of encryption, it is as open on W95 as it was on the older W3.1.

If you are going to put these systems out where the public is allowed to use it, there is always the smart alec that knows enough about computer systems to start twiddling with menu settings and resizing windows and maybe shutting the whole system down and starting up solitaire or something. With an NT system, these features can all be locked out of the account that you give the public, but you can still retain access to them yourself when you need to do maintenance to the system.

The down side of all this, is NT is painfully exceedingly SSSLLLLOOOOWWW!!!!! I read a lot of comments before I installed it about how slow it was, but I just thought that the people griping were too type A, and were not willing to wait that extra 20 milliseconds for something to happen. After all, all this security does come at some cost, and the OS has to evaluate every request you make on it, to make sure you are not doing something that could be harmful to the integrity of the system. The first couple of systems that we installed at work were quickly deinstalled, with a lot of griping about how slow everything was. Well, I said to myself, those guys just never got used to a teletype, they have been spoiled.

Now that it is installed on two systems, one a 90Mhz pentium with 24MB memory, the other a 66Mhz 486 with 16 Mb of memory, I can attest that these things are excruciatingly slow. You never really have come to grips with the idea of slow, until you install NT on your system. When you look in the dictionary for the word Slow, you should see a picture of NT there. My 486 NT system responds at about the rate of a Windows 3.1 system on a 386 16Mhz platform with 2MB of memory, and I can say that with some authority, because the first time I installed W3.1 on a computer, that was the configuration, and off it came. The Pentium system is nowhere that bad, but it is describably slower at doing simple things than W95 or W3.1 ever was.

One hears all the normal propaganda that just around the corner lies salvation, in the form of Cairo, the next version of the NT OS, and it will be heavily optimized, and tweaked and we all know what a piece of junk the current version is, but just you hang in there and ....

And, maybe that will happen. Which is why I indicated that I believed both earlier statements, that there is now a need for two different OSes, and that maybe in a couple of years or so, we will need only one. Maybe NT will get a performance kicker with some serious development, and maybe we will no longer really need drivers for those obsolete cards out there, and most likely when a 400Mhz P7 comes out, all these problems will magically disappear. Just like the slowness of W3.1 on that old 2Mb 386 that I no longer own.



Read Next Article -->

Return to Home Page ^




Afterwords:

Since this was written, I have deleted NT from my office computer and put W95 on it, as have almost all of the other people in our office. We still use NT for those areas where a computer will be in a plant environment where we need the security that NT contains.