The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: cowan@mercury.ccil.org (John Cowan)
Subject: [TUHS] Early non-Unix filesystems?
Date: Thu, 17 Mar 2016 23:59:36 -0400	[thread overview]
Message-ID: <20160318035936.GF16894@mercury.ccil.org> (raw)
In-Reply-To: <20160318004832.GA18245@minnie.tuhs.org>

Warren Toomey scripsit:

> It's a bit off-topic, but what were non-Unix filesystems like around
> 1969-1970?  The PDP-7 filesystem has i-nodes (file metadata) and
> filenames separate from the i-nodes. This allows hard links and thus
> a non-tree structured filesystem.

Not only that, but a non-tree-structured directory system: the directories
themselves were a general directed graph, and it was possible to have any
number of arbitrary hard links to a directory.  This was simplified in
later Unices to the tree-structured directory system we have today, where
the only hard links to a directory are the named link from the parent,
the "." link from self, and the ".." links from the child directories.

There was also no concept of pathnames in PDP-7 Unix, neither relative
nor absolute.  The link syscall was link("foo", "bar", "baz"), meaning
to cause entry "baz" in directory "bar" in the working directory to
be the same file or directory as entry "foo" in the working directory.
So for example, each home directory had a hard link to the main binaries
directory, conventionally named "bin", and the shell could not execute
commands out of a directory that did not contain a "bin" link.  With no
reliable ".." entry, there was also no way to recover from a chdir, and
traversal had to be done as digraph traversal rather than tree traversal.
In particular, incautious use of unlink could cause the directory graph
to become partitioned, requiring low-level disk surgery to recover.

An interesting property of the ODS-1 (RSX) file system was that the
root directory contained the i-node table as a file named INDEXF.SYS.
This allowed ordinary programs to inspect the i-node table without messing
about with raw disks.  It also contained a self-entry named 000000.DIR,
but other directories did not contain self-links.

-- 
John Cowan          http://www.ccil.org/~cowan        cowan at ccil.org
The internet is a web of tiny tyrannies giving an illusion of anarchy.
                --David Rush


  parent reply	other threads:[~2016-03-18  3:59 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-18  0:48 Warren Toomey
2016-03-18  2:49 ` Greg 'groggy' Lehey
2016-03-18  3:59 ` John Cowan [this message]
2016-03-18  5:11   ` Warren Toomey
2016-03-18 17:45     ` John Cowan
2016-03-18  8:00 ` Dave Horsfall
2016-03-18  8:42   ` Peter Jeremy
2016-03-18 13:04     ` Clem Cole
2016-03-18 17:12       ` scj
2016-03-18 17:45         ` Random832
2016-03-18 18:02           ` scj
2016-03-21 14:11             ` Dave Horsfall
2016-03-21 21:43               ` Greg 'groggy' Lehey
2016-03-21 22:57                 ` scj
2016-03-21 23:05                   ` Lyndon Nerenberg
2016-03-22  0:27                   ` Greg 'groggy' Lehey
2016-03-23 22:46                   ` Dave Horsfall
2016-03-24  0:32                     ` Ron Natalie
2016-03-24  0:43                       ` Milo Velimirovic
2016-03-24  0:47                         ` Ron Natalie
2016-03-24  1:05                     ` Clem Cole
2016-03-23  1:28                 ` Dave Horsfall
2016-03-23  1:51                   ` Milo Velimirovic
2016-03-23  6:49                   ` Greg 'groggy' Lehey
2016-03-23  7:02                     ` Peter Jeremy
2016-03-23  7:12                       ` Greg 'groggy' Lehey
2016-03-23 13:54                       ` Ron Natalie
2016-03-23 16:28                         ` John Cowan
2016-03-23  8:20                     ` Dave Horsfall
2016-03-21 11:07           ` Tony Finch
2016-03-21 12:06             ` John Cowan
2016-03-22  0:13               ` Greg 'groggy' Lehey
2016-03-22  0:48                 ` John Cowan
2016-03-18 17:01 ` Pat Barron
2016-03-22  5:21   ` shawn wilson
2016-03-23  0:54     ` Clem Cole
2016-03-23  1:07       ` Clem Cole
     [not found] <mailman.1.1458266402.23080.tuhs@minnie.tuhs.org>
2016-03-18  2:13 ` Johnny Billquist
2016-03-18  2:36   ` Charles Anthony
2016-03-18  2:26 Noel Chiappa
2016-03-22  0:56 Doug McIlroy
2016-03-23  1:58 Doug McIlroy
     [not found] <mailman.1.1458784801.4499.tuhs@minnie.tuhs.org>
2016-03-24 10:17 ` Johnny Billquist
2016-03-24 11:35   ` Ron Natalie
2016-03-24 11:37     ` Johnny Billquist
2016-03-24 22:50   ` Peter Jeremy
2016-03-24 23:06     ` Johnny Billquist
     [not found]       ` <9CBDF635-2FC9-4855-8419-0413EC0336A7@centurytel.net>
2016-03-25  0:35         ` Johnny Billquist
2016-03-27  0:48       ` Dave Horsfall
2016-03-24 19:13 Nemo
2016-03-24 19:54 ` Milo Velimirović
2016-03-26 21:05   ` Ronald Natalie
2016-03-26 21:34     ` Charles Anthony
2016-03-26 22:09       ` Ronald Natalie
2016-03-28 20:32       ` scj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160318035936.GF16894@mercury.ccil.org \
    --to=cowan@mercury.ccil.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).