From Chapter Three: The Windows Culture
From Chapter Three: The Windows Culture
This is the 26th excerpt from the second book in the Defen series: BIT: Business Information Technology: Foundations, Infrastructure, and Culture
Roots
The Microsoft PC is ubiquitous today (late 2008) and is widely thought of as the definitive white collar computing environment. Note that this is largely a social phenomenon, not a technical one and no researcher has yet published anything amounting to a documented explanation of the PC's rise to importance.
According to many popular histories the seventies were characterized, from a personal computer viewpoint, by machines like those from Altair requiring binary programming and displaying results by lighting lamps. In fact those machines belonged to the sixties and were sold mainly to hobbyists.
The first computer shipped pre-assembled and clearly intended for use by a single individual as a dedicated personal machine that came complete with all the components:
- Memory (up to 64K)
- Screen (5.5", black and white)
- Storage (up to a 10MB Disk on 1974's second generation models; the 1973 model shown here uses a tape in lieu of disk);
- Local operating system (in ROM - read only memory)
- Programming languages (APL and BASIC)
was the IBM 5100 introduced internally 1972 and released for sale to the public in late 1974.
By the mid 1970s, major companies including IBM, NCR, and Digital Equipment Corporation (DEC) made full fledged personal computers for business use and dozens of smaller companies made roughly comparable, but generally cheaper, machines for sale to business and academic users.
The first PC? |
The MCM/70, from Kutt Systems, was a lot cheaper and focused on non business uses but came a bit later. In many ways a consumer IBM 5100, it too ran APL, used a cassette tape for storage, and came (as the MCM/70T) pre-configured for use as a smart terminal. Announced in late 1973, it had the distinction of being the first Canadian computer to use an Intel CPU board --the SIM8-01 with an 8008 CPU and 1K of RAM. |
The architecture those companies used in the machines they built tended to reflect their views on the market's trade-offs between cost and performance.
Thus two broad lines developed:
- Companies which focussed on performance generally designed products around the Motorola MC6800 line introduced in 1974; while,
- Those which focussed on cost generally selected the Zilog Z80A introduced in 1975 and its successors.
These products were generally quite sophisticated with advanced operating systems and a fairly wide selection of commercial applications available by the late seventies.
For example this 1978 Intertec Superbrain had two Z80A microprocessors running at 4MHZ and ran a multi-tasking capable version of CP/M in 64K of user accessible RAM. One CPU was dedicated to handling user interaction, including built in APL and BASIC interpreters, as well as a large number of packaged applications like WordStar and Visicalc. The second CPU handled all I/O, including managing a serial modem interface and a printer as well as the two floppy drives.
Two footnotes |
Most footnotes and diagrams are ommitted here due to the lack of true HTML support in Wordpress - however these two are included here for interest:
|
This layered design was made possible by CP/M (Control Program/ Monitor) --then the standard operating system for small machines.
CP/M (from Gary Kildall's Digital Research Corp. [DR]) separated user accessible memory from system accessible memory by having an operating kernel which ran the hardware and only communicated with user applications through a predefined set of messages generated by a user shell or command library.
This made it easy to replace the user shell without affecting the kernel. For example, GEM, the graphical user interface (GUI) released for CP/M in late 1984, consisted mainly of an alternate command shell - and became the basis for the phenomenally successful Atari line of multi-media oriented computers.
This design approach, copied for CP/M from Unix, offers an elegant solution to the problem of providing multi-user access to a single physical machine: one kernel communicates with multiple user shells. This design easily handles hardware access serialization and provides for strong memory management without the complexities and performance losses inherent in multiple single-user strategies such as IBM's machine virtualization - but was stripped out of the version adapted for use as MS-DOS largely because of processor limitations in IBM's chosen CPU: the Intel 8080.
Some notes:
- These excerpts don't (usually) include footnotes and most illustrations have been dropped as simply too hard to insert correctly. (The wordpress html "editor" as used here enables a limited html subset and is implemented to force frustrations like the CPM line delimiters from MS-DOS).
- The feedback I'm looking for is what you guys do best: call me on mistakes, add thoughts/corrections on stuff I've missed or gotten wrong, and generally help make the thing better.
Notice that getting the facts right is particularly important for BIT - and that the length of the thing plus the complexity of the terminology and ideas introduced suggest that any explanatory anecdotes anyone may want to contribute could be valuable.
- When I make changes suggested in the comments, I make those changes only in the original, not in the excerpts reproduced here.