Bruce> Remember, UNIX was essentially a port of MULTICS from a
Bruce> mainframe to a minicomputer.
Post by Christopher C. Stacy
That is not at all accurate: Multics and UNIX have almost nothing in
common; UNIX was a reaction against the directions that Multics went.
They do not share any programs whatsoever; no "porting" was involved.
Barry> They "ported" some of the concepts.
Certainly _not_ the fundamental Multics concepts concerning processes,
memory, program linking, most of the IO and file systems, nor any of
the security features. Not the underlying reliability philosophy.
Not even the concept of writing in a high-level language: UNIX and
all of its programs were originally written in bare PDP-7 assembler.
Now, I happen to know that you are at least (and perhaps far more)
knowledgable about Multics than I am, and you know about UNIX, too.
So I ask you: What would you dispute in the list above, or what's
left that would you say are the fundamental concepts that were ported?
There were some totally superficial things, like some of the
short names of some commands. There are some faint ghosts of
ideas, like the shell PATH being vaguely functionally similar
to the dynamic link search path in a Multics session.
Another superficial thing might be the "roff" program, but that's
not a Multics concept. It was however, a port. It was based on
the RUNOFF program from CTSS, rewritten into BCPL for Multics,
transliterated into PDP-7 assembly code, and then ported into
PDP-11 assembly for UNIX. (And there were a bunch of other RUNOFF
knockoffs on many various operating systems back in those days.)
Some people might cite the shell (being a user-mode program),
and maybe one could say that's significant. While it's _not_
part of the operating system kernel, that's the idea!
But this is an older idea, from CTSS (RUNCOM), not Multics,
and it was present in some other operating systems of the 1960s.
Multics didn't really have pipes available in the shell, although
it did have primitive IO redirection (not a totally new idea with
Multics, either.) Anyway, The key concept of pipes is their
command-line utility for linking together a chain of smaller
programs to accomplish something. This represents a powerful idea,
and it really belongs originally to UNIX, not Multics.
Another feature was symbolic links, which UNIX picked up from Multics,
But I'm not sure if that originated on Multics, CTSS, or elsewhere;
I know of another system that had the symbolic file link feature at
least by 1968. (And you know which system I mean, and how it's about
as far away from the CTSS/Multics philosophy as you can get!)
A more substantial concept that did make it from Multics to Unix
is the concept of a hierarchical file system. Of course, Multics
did not have "files" -- it had "segments", and they are not the
same thing at all. But they are both in directories. But although
Multics was the first to realize them, the concept and need for
hierarchical directories were considered obvious and natural
(at least by some people) at the time (see recent writings
from Saltzer and Ritchie on this point).
But none of those things above have much to do with the
fundamental concepts of Multics, having to do with reliable,
auditable, error-recovering, protected, mostly uniform system
based on a core flexible reference-monitored dynamically
linked large-address space backing-store model
I think they only "ported" the vaguest of ideas, infinitely far
from anything that I would use the word "port" to describe,
particularly in the context of a discussion about patents.
As for whether UNIX was a "reaction" (I am implying a negative one)
to the ideas in Multics, you might ask yourself why those guys left
the Multics project early on. I don't mean to suggest that they
thought the Multics ideas were not worthwhile. But the answer is
at least in part because the concepts in the system were not leading
to a computer system that was viable in their context of interest.
That is, those concepts were too expensive for the kind of computer
systems they wanted. Specifically, underpowered minicomputers of
the day, which is what became available to them back at Bell Labs.
(In those early days, Multics wasn't even viable on a large computer,
and was viewed in some respects as a failure!) UNIX was a very
different overall design using very different concepts, carrying
over none of the fundamental Multics mechanisms.
I would be interested in how Multicians view UNIX as a port of Multics.
If you're just appealing to authority by invoking the early designers,
pleas esee also (in Google) where Dennis Ritchie's responds to my
observations about the fundamental differences in the core concepts
of two systems by seemingly agreeing (and amplifying, with words
like "fairly radical difference".) However, Ritchie and others do
consistently cite Multics as having inspired many things in UNIX.
But not "port".
Certainly the UNIX inventors were inspired by Multics, and they
learned a few things from Multics, as did many other computer
operating systems. Windows NT might have more similarities
to Multics than UNIX does, but nobody tries to claim that it's
a port of Multics. Many of the concepts and ideas in operating
systems today came from CTSS, predating Multics, but we don't
say that those systems are a "port of CTSS", either.
I think that Multics people like to claim UNIX as a descendent mostly
so that they can feel that their beautiful life's work was not all
sadly pissed away in history by unfortunate Honeywell business decisions.
This is reinforced by the UNIX inventors citing their experience with
Multics as inspirational. And most UNIX folk today are entirely ignorant
about Multics, but have heard that is was somehow important and good,
and they would like to claim that therefore UNIX has some of the same
design goodness of Multics. There have been other operating systems
(unrelated to UNIX) that actually did use some of the Multics ideas,
but none of them caught on in the mainstream, either. Perhaps Multicians
would be better off nursing their feelings by recognizing that most things
that are popular are actually terrible crap, while Multics was much better
than most systems that have been invented over the subsequent several decades.
But any technical arguments you might have about how UNIX is
a port of Multics would be welcomed with great interest.