[net.unix-wizards] History lessons

mwm@ucbtopaz.CC.Berkeley.ARPA (Mike (I'll be mellow when I'm dead) Meyer) (07/14/85)

Some misinformation about the history of Unix has been floating around
the net. In the interests of truth, justice, and the Unix way, I'm going
to post what I believe to be correct information.

>P.S. 4.xBSD is the only UNIX that documents "-inum" but I think it's been in
>there since V7 and is thus in S3 and S5 as well.

Contrary to popular believe, S3 and S5 are *not* descended from v7. They
spun off the research Unix line somewhere between v6 and v7, and some of
the things in v7 were added after that happened. The most glaring
example (to me, anyway) is the dbm library. I don't know (and can't
check) if the S3/5 find have -inum.

>It is true that the Unix *kernel* does not limit directories to a
>single pathname.  Neither does the kernel require the two filenames "."
>and ".." to be the first two names in a directory.  Nor does it require
>that file descriptors 0, 1, and 2 be used for standard input, output,
>and error, respectively.  Yet all three of these characteristics are
>considered to be part of the overall Unix system.  They are conventions
>that should be adhered to.  Are you claiming that "rmdir, mvdir, ln,
>and mkdir" are not part of Unix?

I have it from a reliable source (Ritchie) that in the original Unix file
system, the directory structure was an arbitrary graph. It was changed
to a tree because of the hair involved in consistency checking. As late
as v6, ln command allowed root to link directories, and across file
systems. This may have been a Purdue hack, though.

	<mike

"4.2 isn't to big. v7 was to big; 4.2 is efing HUGE."

guy@sun.uucp (Guy Harris) (07/16/85)

> Some misinformation about the history of Unix has been floating around
> the net. In the interests of truth, justice, and the Unix way, I'm going
> to post what I believe to be correct information.
> 
> >P.S. 4.xBSD is the only UNIX that documents "-inum" but I think it's been
> >in there since V7 and is thus in S3 and S5 as well.
> 
> Contrary to popular believe, S3 and S5 are *not* descended from v7. They
> spun off the research Unix line somewhere between v6 and v7, and some of
> the things in v7 were added after that happened.

I'm *quite* aware of that, thank you.  However, the point of spin-off was
*FAR* closer to V7 than to V6 (UNIX/TS 1.0 had the V7 file system, the new
V7 system calls, and the Bourne shell).  The chances are *extremely* good
that if something was in V7 it was in S3 as well.

> The most glaring example (to me, anyway) is the dbm library.

Which may have come out after UNIX/TS 1.0 was done, or may have come out
before but wasn't picked up by the people doing UNIX/TS.  Could anybody with
real knowledge say which was the case?

> I don't know (and can't check) if the S3/5 find have -inum.

It has it; I looked.

> As late as v6, ln command allowed root to link directories, and across file
> systems. This may have been a Purdue hack, though.

It certainly was.  "ln" *across file systems*?  V6 sure as hell didn't
support that (remember, the V6 directory format and the V7 directory format
are the same; there's room in a link for an inumber but not for a file
system).

> "4.2 isn't to big. v7 was to big; 4.2 is efing HUGE."

V6 was too small (no supported "long" or "short" data types, a weak shell,
no Standard I/O library, no "make", no environment, etc., etc.).

	Guy Harris

tim@cithep.UucP (Tim Smith ) (07/18/85)

> I have it from a reliable source (Ritchie) that in the original Unix file
> system, the directory structure was an arbitrary graph. It was changed
> to a tree because of the hair involved in consistency checking. As late
> as v6, ln command allowed root to link directories, and across file
> systems. This may have been a Purdue hack, though.

Root can still link directories, as far as the kernel is concerned.  As for
linking across file systems, this must be a Purdue hack, since it is not
possible on ordinary v6,v7,TS 1.?, SIII, and SV for very fundamental reasons.
How did they change the file system to allow this?
-- 
					Tim Smith
				ihnp4!{wlbr!callan,cithep}!tim

davy@pur-ee.UUCP (Curry) (07/19/85)

In article <92@cithep.UucP> tim@cithep.UucP (Tim Smith ) writes:
>> I have it from a reliable source (Ritchie) that in the original Unix file
>> system, the directory structure was an arbitrary graph. It was changed
>> to a tree because of the hair involved in consistency checking. As late
>> as v6, ln command allowed root to link directories, and across file
>> systems. This may have been a Purdue hack, though.
>
>Root can still link directories, as far as the kernel is concerned.  As for
>linking across file systems, this must be a Purdue hack, since it is not
>possible on ordinary v6,v7,TS 1.?, SIII, and SV for very fundamental reasons.
>How did they change the file system to allow this?


I'm not sure who started this rumor, but it's incorrect.  Purdue never
hacked in stuff to allow you to link across file systems.  So far as I
know, we never did much else to the file system either, with the small
exception of gracefully handling what happens when the file system runs
out of space.

Of course Purdue did hack in lots of other stuff, but that's a different
story all together.

--Dave Curry

mwm@ucbtopaz.CC.Berkeley.ARPA (Mike (I'll be mellow when I'm dead) Meyer) (07/21/85)

In article <92@cithep.UucP> tim@cithep.UucP (Tim Smith ) writes:
>Root can still link directories, as far as the kernel is concerned.  As for
>linking across file systems, this must be a Purdue hack, since it is not
>possible on ordinary v6,v7,TS 1.?, SIII, and SV for very fundamental reasons.
>How did they change the file system to allow this?

They didn't, my memory slipped. Would you believe multiple links to the root
of a file system (say, /u and /usr being the same). Sorry 'bout that.

	<mike