25 Mar 1996

There is no Hotel in Chicago

[Note: the code name for Windows 95 was "Chicago".]

You check into a hotel. At the front desk, they take your credit card number and give you a key. Each room has a separate lock for security, and for privacy it has a separate bathroom and TV. Food is available in the restaurant in the lobby. To make this all work, the hotel employs a professional staff.

A home has no such overhead or infrastructure. Bathrooms are generally shared. The TV is down in the den. There is no menu at mealtimes. At night, anyone who gets hungry simply raids the refrigerator. Such informal arrangements work within a family. The more expensive and elaborate conventions of a hotel are appropriate for a large number of strangers.

The "real" operating system such as Windows NT, Unix, and OS/2 are designed like a hotel. They are designed to separate each application program in its own address space so that programs do not interfere with each other or with the system. Access to the internal control blocks is limited to components of the operating system itself (the device drivers, memory manager, task manager, and other kernel components). To establish these boundaries, the system must create components and interfaces that add overhead to the system.

In a hotel, the staff will get upset if a guest wanders back into the kitchen and pours a glass of milk. This is probably a violation of the local health ordinances. Everyone is expected to sit at a table and order from the menu.

In the same spirit, a real operating system will not allow the ordinary application to reprogram the timer chip. There is an interface that allows each program to request timer services. The system then provides device drivers, interrupt handlers, queues, and events to propagate timer events back to the program.

In DOS, Windows 3.x, or Windows 95 there is no separate component to do the work. Windows supplies tools that the programs use. The tools enforce cooperation and good behavior. However, the work is done by the application program itself.

Users and even some programmers may not understand this distinction. To someone unfamiliar with modern technology, many household appliances act like workers. Put the dishes in the dish washer, add soap, start it, and an hour later the dishes are clean. The machine acts like a separate worker. However, this is not the same thing as a hotel, where the busboy clears the table and someone else washes the dishes. A kitchen dishwasher simply acts as an extension of the person who loads and starts it.

If a Windows 95 application wants to write on the screen, it calls routines provided by the Windows 95 system to draw lines, boxes, or text. The tool writes to the display adapter directly under the authority of the application program. It updates control blocks so that this action will be coordinated with other programs that might be effected (provided, of course, that they use the same tool when then write to the screen).

In Windows NT, programs cannot access the screen directly. They may use what appears to be the same tool provided by Plain Old Windows, but in NT the tool simply builds a request and sends it to something called the WIN32 Subsystem. The subsystem is a separate program acting as part of the NT "professional staff." It coordinates requests and enforces good behavior.

The informal, cooperative arrangement of a family is the best way to run a normal home. The formal, structured relationship of a hotel is the best way to house strangers temporarily. Neither is the "right" or "wrong" answer. The informal structure of DOS was the best way to run a single user PC with 640K of memory. The formal structure of Unix or MVS is the best way to run a multi-user timesharing system. So the 64 billion dollar question is, "Which is the best starting point for the average PC in the late 1990's?"

Microsoft can argue that most machines remain Personal Computers. They run the personal programs of the end user and do not require any elaborate control structure. IBM can argue that the 486 machine is 50 times as powerful as the original PC, and machines get bigger each year. At some point, a more formal control is needed just to manage the increased size. There is something to both arguments.

Continue Back PCLT

Copyright 1995 PCLT -- Surviving the Next Operating System -- H. Gilbert

This document generated by SpHyDir, another fine product of PC Lube and Tune.