1.2. A Tale of Two Operating Systems

Unix

Unix evolved for minicomputers in an historical context where

  • Multiprocessing was expected, and the hardware provided safeguards for protecting one running process from affecting or being affected by other processes on the same CPU.

  • The most common displays were computer terminals, which came in many different models, all of which used mutually incompatible control sequences. Most of these could display text only, or text with simple vertical & horizontal line graphics. True graphics terminals were not unknown, and were clearly on their way, but were so expensive as to be comparatively rare.

  • Networking was common. In fact, it was normal, perhaps even the rule, for users to be controlling, via the network, machines that were remote from the users' actual location.

The PC Revolution

When personal-computer (PC's) came on the scene, they represented a revolution in terms of both decreased size and decreased cost, but they represented a step backwards in terms of total computing power and in terms of the sophistication of the hardware support for many systems programming activities.

Oddly enough, PC systems seemed to recap the entire history of computing up till that time, though at a somewhat faster pace:

  • One user -- One CPU was a rallying cry of the early PC proponents. They argued that, although an individual PC presented limited CPU power compared to mainframe or mini machines, the individual PC could still provide a single user with more CPU power than that person would receive as their share of a mainframe when split over a large number of simultaneous users. So early PC operating systems returned to the single-user, single-process[1] model that had gone out of fashion decades before in the world of larger computers.

  • Display technology reverted initially to the electric-typewriter style system console. This was quickly supplanted by a dumb terminal CRT-and-keyboard, though early printers were still electric typewriter based.[2]

    The very existence of integrated circuit CPUs, however, lowered the cost of CRT displays to the point where more elaborate, graphics-capable displays were soon available.

  • Network technology was initially spurned. One user -- One CPU, remember? Why would anyone need access to other computers. Email and net news could be handled by modem connection without full-fledged networking. It took a surprisingly long time before PC operating systems and applications began to acknowledge that not every bit of information and not every hardware/software resource could economically be replicated on every PC system.

MSDOS & Windows

MSDOS was developed in a context where

  • One user -- One CPU was the rule. Multiple processes for a single user were not deemed necessary.

  • Most PCs had a CRT display with limited character and graphics capabilities.

  • Networking was deemed unnecessary.

As MSDOS evolved into Windows, it did so in response to changes in the HW/SW context:

  • One user -- One CPU remained the rule, but a single user might have multiple processes.

  • PC displays could show characters in a variety of fonts, and graphics capabilities were more common.

  • Some people might want local networking, but it was supplied by third-party add-ons with minimal support from the operating system itself. As for the Internet, why would anyone with a PC want to communicate with all those mainframe dinosaurs?



[1] because, after all, that single user didn't really need to split those precious CPU cycles among more than one application at a time, right?

[2] In fact, I recall seeing ads for a device consisting of a panel of solenoids and control circuits that could be placed over the keyboard of an electric typewriter. Send the panel the ASCII code for an a, and a solenoid finger would punch down right where the a key would be on a typewriter. Send it the ASCII code for Z, and a pair of solenoids would strike the typewriter's shift and z keys.