Next: Java History =>

OS History

Mainframe and Unix computers communicated to "terminals" that operated as a typewriter or simple character display device. To move a file or run a program, the user typed in a text command. The user had to remember the names of commands, options, and data files.

Programmers at the Xerox Palo Alto Research Center were first to imagine a friendlier system, where users could perform basic operations by dragging icons around the screen with a mouse. Xerox built their first systems on minicomputers costing hundreds of thousands of dollars. At that price, the system wasn't very popular.

Steve Jobs saw what Xerox had created and set out to design an affordable desktop machine that supported the same basic interface. Instead of adding a user interface on top of an existing system, his Macintosh hardware and operating system would be designed from the beginning to support (exclusively) a graphic user interface.

From the beginning of the project, Jobs called on Microsoft to design applications for the Mac. Microsoft became the largest vendor of Mac software, and in the late 1980s Microsoft made as much from Mac sales as it made from sales of PC software. The original development contract between Microsoft and Apple contained a clause to protect Microsoft's investment. After a period of Mac exclusivity, Microsoft was allowed to create an environment to support its Mac applications (and their graphic user interface) on other computer systems. Windows didn't "steal" the ideas of the Macintosh, because both were created at the same time from a common Xerox model.

The Macintosh was a simple and powerful system because the hardware, system, and applications were all designed together from the start. Microsoft had a much more complicated problem because Windows had to be layered on top of existing hardware designed by hundreds of different companies and support PC applications designed for DOS. The Intel 286 CPU chip wasn't powerful enough. Machines didn't have enough memory. The dozens of different video adapters and hundreds of printers were a nightmare. It wasn't until 1990 that the pieces started to fall in place. The Intel 386 chip was fast enough. Machines were now routinely sold with two to four megabytes of memory. Video adapters began to have accelerator chips. When Windows 3.0 was released in May, 1990 it became a monster hit.

Before 1990, Microsoft had been successful selling Mac applications, but the leading PC applications were Word Perfect and Lotus 1-2-3. Microsoft didn't expect to make money selling Windows itself. Windows was needed so that Word, Excel, and the other Mac applications could run on mass market computers. Originally, Microsoft maintained one code base for programs like Word and ran the same version of the program on both systems. After Windows popularity exploded, it no longer made sense to constrain its development to maintain compatibility. Windows developed its own unique features, and Microsoft started to maintain separate versions of the applications each with their own delivery schedule.

Unix was an older systems, designed in the timesharing period when many users would share a central computer from remote terminals. It was designed around concepts of multitasking and virtual memory that were more sophisticated than the original Mac or Windows design. More importantly, while the Mac and Windows system could assume that the display screen was a local hardware device that the CPU could access as easily as an area of memory, in Unix the display, keyboard, and mouse might be attached to a another device somewhere in the network. When MIT decided to add a graphic user interface to Unix, its design had to obey firm restrictions imposed by a multitasking, virtual memory, networked environment and could not cut corners like Windows or MacOS. The Unix basic user interface system is called "X". A widely used package of user interface objects for applications called "Motif" was layered on top of the basic X services. However, to create a desktop to browse disks and launch programs, a large number of competing programs (CDE, KDE, Gnome, GNUStep, ...) developed.

(c) Copyright 2003 Howard Gilbert