1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
|
# [The History of the Unix Operating System](https://www.inf.fu-berlin.de/lehre/SS01/hc/minicomp/)
## 0. Abstract
This paper gives an introduction to the computer architecture commonly referred
to as "minicomputers" that was the state of the art in the 1970s. Starting with
an overview of relevant events prior and during this time period, this paper
presents both the hardware and software that was used to run these machines. It
takes the DEC PDP-11 computer as an example to illustrate some of these
principles.
## 1. Introduction
In order to properly understand the relative importance of minicomputers, one
has to place them in their historical context. Relevant events start taking
place well before the first minicomputer was built:
* 1961: MIC acquires first DEC PDP-1 (for the TMRC - Tech Model Railroad Club)
* 1964: IBM enters the computing arena by announcing the System/360 series.
* 1965: DEC PDP-8 is the first commercial minicomputer and costs $20,000 USD.
* 1967: DEC PDP-10 is unveiled.
* 1969: ARPAnet is started and runs mostly on DEC PDPs.
* 1971: Intel announces the 404 microprocessor.
* 1973: Unix operating system is first presented to the public.
* 1975: The term "Personal Computer" is coined.
* 1977: Apple Computer Corp. is founded
* 1978: C programming language is announced while DEC releases the VAX-11.
Obviously, the pace of technical progress was quickening as compared to the era
of the mainframe computers. A computer is no longer a unique piece, but they are
rather manufactured on an industrial scale. Of course, this reduces the
production cost for each single object and hence the prices drop. Also, several
computer types produced over a certain period of time differ only slightly in
their architectural design. It was IBM who - unlike DEC - first realized the
importance of this concept of compatibility and made sure that all systems
released in the future would be backward-compatible to their System/360
platform.
During the 1970s, there were a few focal places at which important developments
took place: As already mentioned, the MIT AI Lab was amongst the first to use a
DEC PDP system and contributed research, especially their ITS (Incompatible
Time-sharing system) operating system. With them were SAIL (Stanford AI Lab) and
Xerox PARC (Palo Alto Research Center) who were concentrated on user interface
issues.
## 2. Hardware
Computer hardware tends to come in generations that are linked to underlying
technology used to build the respective hardware. The table below gives an
overview of the predominant technologies in each time period.
* 1950-59: Vacuum tubes
* 1960-68: Transistors
* 1969-77: Integrated circuits
* 1978-today: LSI (large scale integrated) circuits, later VSLI (very LSI)
circuits
Minicomputers were built based on integrated circuits (ICs), so-called "chips".
This technology of constructing logical gates was invented independently by both
Jack Kilby and Robert Noyce in late 1950s. They imprinted circuit networks on
isolating material and used semiconductor material, such as silicum or
germanium, to take care of the actual logical operations. The advantages of
integrated circuits compared to transistors were significant: They were not only
smaller and faster, but also more reliable and consumed less power. Furthermore,
it was now possible to automate the production of these new chips, which made
them more widely available at a considerable lower price.
> "I didn't envision we'd be able to get as many parts on a chip as we finally
> got" - J. Preper Eckert, co-inventor of the ENIAC
In fact, in 1964 Gordon Moor, who worked as semiconductor engineer by then and
went on to co-found Intel four years later, observed that the complexity of
integrated circuits doubles every year (Moore's Law). This bold statement held
until the late 1970s, at which point the development speed slowed down to double
complexity every 18 months.
## 3. Minicomputer architecture: The DEC PDP-11
Digital Equipment Corporation - DEC for short - was the leader in the market of
minicomputers, both financially and technologically speaking. Their most
successful line of products was the PDP series, PDP standing for Programmed Data
Processor. As already mentioned, these computers were relatively cheap with
prices ranging in the ten-thousands of dollars, this face making them quite
popular amongst universities.
Furthermore, they introduced interactive computing, meaning that for the first
time the user was given a direct feedback while doing their work. Up until then,
programs, were usually entered on punch cards and the result of the computation
was eventually out on other punch cards. The minicomputers used the line printer
and later introduced the cathode-ray-tube (CRT) or monitor as a way of giving
quick feedback to the user. As multiple terminals (combinations of input and
output devices) were attached to the same main unit, a need arose to handle the
input, output and processing of all the terminals simultaneously. This is why
minicomputers, such as the PDP-11, came equipped with a time-sharing operating
system capable of handling multiple tasks at the same time.
The DEC PDP-11 was the successor of the PDP-10 and the predecessor of the
VAX-11. Just as the PDP-10 it was delivered with the TOPS-10 (Time-sharing OS)
and the MACRO-10 assembler. At MIT, their own operating system called ITS
(Incompatible Time-sharing System) was developed.
The main hardware features of the PDP-11 were:
* 8 general-purpose registers labeled R0-R7, with R7 also being used as the
program counter
* 64K memory with a 16 bit address
* fixed-point integers in two's complement notation both 8 bit (1 byte) and 16
bit (1 word) long
* floating-point numbers both 32 and 64 bit long
* external UNIBUS for bi-directional, asynchronous data communications between
devices.
Because of the UNIBUS architecture, it was possible to build the components of
the PDP-11 in a modular way. This had the additional benefit that the system
could be refitted with numerous extensions, thus enhancing its overall
capabilities. Below is a list of some of the available extensions:
* Extended Arithmetic Element (EAE) for fixed-point multiple, divide and shift
* Extended Instruction SET (EIS) enhancing the CPU to perform the operations
above using general purpose registers
* Floating Point Processor (FPP) operating on six associated registers
* Floating Instruction Set (FIS) using a stack architecture for floating-point
operations
* FASTBUS and high-speed memory connects a high-speed memory between CPU and
UNIBUS
* Cache memory interposed between CPU and main memory.
* Memory management extending the physical address space.
* MASSBUS for high-speed Input/Output.
## 4. Software
The most important single piece of software that ran on those machines was, of
course, the operating system. Up until the early 1970s operating systems were
written in machine specific, tight assembler code. This was considered necessary
because only by hand-coding the innermost loops it was possible to achieve the
optimal performance of the machine. The drawback of this approach obviously was
that the code could not be reused, if another architecture differed in just the
slightest way. While IBM did quite a good job at keeping things compatible, DEC
wasn't very concerned about this issue. In fact, even within the PDP series the
machine designs were quite different, for example the length of a word in memory
would vary between 7 and 16 bits as time went on.
In 1969 Bell Labs started work on a new kind of operating system which was
supposed to be called "Multics". Partly based on MIT's ITS, the main goal was
to hide the complexity of the computer from programmers as well as users.
However, this project was canceled due to disagreements between Bell Labs and
their associates.
Fortunately, Ken Thompson, who was in the team that first worked on Multics,
implemented parts of the project and some of his own ideas on a salvaged PDP-7
using the B programming language. He calls the resulting system "Unix". Roughly
at the same time Dennis M. Ritchie develops the C programming language which has
some of its roots in B that was used to first implement Unix. During the time
from 1972 to 1974 Ken Thompson reimplements Unix in C constantly improving the
system. A first version of Unix is presented at a symposium on operating system
principles at Purdue University in 1973.
The Unix operating system and the C programming language broke with the old
principle of system level programming which was supposed to only be done in
assembler. This new approach, while not achieving the same performance
initially, had another huge advantage: Once the C compiler had been modified to
produce machine code for a new architecture, all programs written until then
could easily be recompiled and would run on the new platform without major
problems. This was impossible to do with assembly code.
The concept of making software portable between different platforms eliminated
the need to start working from scratch again for each new architecture. Unix,
being the first portable operating system, was immensely successful and already
by 1975 it ran on several different platforms including IBM System/370,
Honeywell 6000 and Interdata 8/32. Also, it was now possible to easily port
common tools to all platforms. Taken together with the standardized interface of
system calls through which Unix gives access to the machine, these two factors
contributed considerable to making programming much easier than it was ever
before.
## 5. Conclusion
The world of computers has dramatically changed during the 1970s. Starting off
in the world of mainframes of the 1950s and 1960s, only 10 years later not only
the hardware has changed considerably, also some new concepts have rendered old
assumption obsolete: It now is important that systems are compatible to each
other, interactivity is a prerequisite, and as far as software is concerned
portability is the new way to go.
Yet the 1970s should be considered just a transitional phase. As the technology
advances even more rapidly, it becomes obvious that soon enough new ideas will
be challenging these assumptions once again. The PC desktop revolution is just
around the corner.
## 6. Bibliography
* Richard E. Eckhouse, L. Robert Morris - Minicomputer Systems: Organization,
Programming and Applications (PDP-11). (2nd ed.) Prentice Hall (1979)
* Brian W. Kernighan, Dennis M. Ritchie - The C Programming Language. (2nd ed.)
Prentice Hall (1988)
* David A. Paterson, John L. Hennessy - Computer Organization & Design. (2nd
ed.) Morgan Kaufmann (1988)
* Raymond, Eric S. - A Brief History of Hackerdom. http://tuxedo.org/jargon/ (1998)
* Raymond, Eric S. - The Jargon File. http://tuxedo.org/jargon/ (2001)
|