The Internet Encyclopedia (Volume 3)

(coco) #1

P1: JDW


UNIX WL040/Bidgoli-Vol III-Ch-41 August 13, 2003 17:26 Char Count= 0


HISTORY 495

In the Beginning: Multics
“Plan to throw one away; you will, anyhow.” These words
are from a chapter in Frederick Brooks’s seminal work on
software development,The Mythical Man-Month(Brooks,
1995). His point is that the first attempt at something new
in software is always a learning experience fraught with
the unknown, and wherever “a new system concept or new
technology is used, one has to build a system to throw
away, for even the best planning is not so omniscient as
to get it right the first time” (p. 116). In the case of the
Unix operating system, the one that was thrown away
(albeit reluctantly) was Multics, an acronym that officially
stood for “Multiplexed Information and Computing Ser-
vice” but which also stood for, according to one tongue-
in-cheek oral tradition, “Many Unnecessarily Large Tables
in Core Simultaneously.” Multics (notcapitalized) began
life in 1964 as a joint collaboration between three insti-
tutions: General Electric, the Massachusetts Institute of
Technology (MIT), and AT&T Bell Telephone Laboratories
(BTL). It ended its life only in 2000, when the last Multics
computer was turned off at the Canadian Department of
National Defence.
Multics was an attempt to experiment with a number
of new ideas in operating systems research. Before Mul-
tics, operating systems tended to be monolithic, written in
a native low-level assembly language, with “flat” file sys-
tems that did not allow multiple users access. Many of
these early operating systems could not do several things
at the same time, and often resorted to running different
user programs back to back, or sequentially, in a mode
that is called “batch processing.” One of the primary goals
of the Multics operating system was to provide a time-
sharing system that allowed multiple users to work on
the system simultaneously with safety, security, and in-
tegrity. The original goal was to support several hundred
simultaneous users (Daley & Dennis, 1968).
The Multics operating system was notable for attemp-
ting to provide among other things, within a single
operating system, a shared-memory multiprocessing
environment. But the three most interesting aspects of
Multics for our purpose were its emphasis on using a high
level language (PL/1) for its implementation (as opposed
to a machine-dependent assembly language), its notion of
extracting the command processor user interface (shell)
from the kernel into a separate user (selectable) program,
and its implementation of the first hierarchical file system.
A hierarchical file system is a file system that supports a
compositional structure, that is, directories are files that
can contain other files, including other directories, a com-
monplace in modern operating systems today (thanks to
Multics and later Unix) but a somewhat radical concept
in 1964.
The result of this design was that only a small portion
of the operating system had to be written in assembly lan-
guage. Writing the operating system in a high-level lan-
guage afforded the possibility of more easily porting the
operating system over onto disparate hardware platforms.
This notion of writing the operating system in a high-level
language was a new one. This notion of portability was
one of many features of Unix that was derived from Mul-
tics, others included the concept of making the command
interface (also known as the shell) just “another user pro-

gram like the others.” Literal carryover in command nam-
ing, such as “ls” (list directory), “pwd” (print working di-
rectory), and the notion of an online help system (“man”
in Unix) all derived from Multics.
The joint collaboration between General Electric, MIT,
and Bell Labs was, in the case of the latter, centered at
the Murray Hill, New Jersey, Computer Research Group’s
(CRG) laboratory. The Multics development machine at
the labs was a dual processor General Electric 645 com-
puter, a slow machine by today’s standards, operating
only a little faster than the original IBM PC. A 1000 Mhz
Pentium III is roughly2,000 times fasterthan the GE
645.
All was not well with Multics and the joint venture.
Before tuning, the system could only support a few simul-
taneous users (remember the goal of hundreds of simul-
taneous users). After tuning, by 1969, a Multics system
could support about 30 users per processor. Nevertheless,
performance was erratic and ran on expensive hardware;
as a result, Bell Telephone Laboratories (BTL) had seen
enough of the Multics effort and pulled out of the triumvi-
rate in the spring of 1969. This greatly saddened a num-
ber people in the CRG, including one hyper-productive
bearded individual by the name of Ken Thompson. After
BTL pulled out of the Multics project, the GE 645 was
packed up and carted off, and Ken and a couple of his
colleagues, Dennis Ritchie and Rudd Canaday, were left
without a toy.
This was the summer of 1969, remember, and the na-
tion and the world was captured by theApollomissions
and just about to witness a frightening several days when
Jim Lovell and crew aboard theApollo 13flight were go-
ing to use the Moon’s gravity to whip them back home
to Earth. Ken Thompson had been playing around with a
computer game he had written on the now-missing Mul-
tics machine. “Space Travel” was a space orbit simulator
that cost Ken’s department $50 to $75 an hour to play
on the GE 645 timesharing system. Even with that ex-
pense, the Multics operating system running on the old
machine could hardly keep up with the hyperbolic calcu-
lations that were needed to run the game efficiently. So
Ken found himself simultaneously without an operating
system to work on and without a computer on which to
play Space Travel. This situation was, of course, entirely
unacceptable. Something had to be done, and done fast.

A “Little-Used PDP-7”
After pulling out of the Multics project by BTL, Ken’s
group naively petitioned the powers that were at BTL
for the purchase of a brand new DEC 10, at a cost of
around $120,000. Why? they were asked. Their response
was so they could write a brand-new operating system
that looked a lot like Multics. The answer that came back
somewhat bluntly basically said, “What part ofnodon’t
you understand?”
Ever resourceful and constitutionally incapable of fa-
tigue, Ken found an old (and even outdated by that time)
PDP 7 computer lying unused in the corner of an office
and decided to port Space Travel onto it. The game ran,
but very slowly. Space Travel was in desperate need of a file
system to support its planet information, and with their
experience of the Multics hierarchical file system, Dennis
Free download pdf