16

Windows, Macintosh, Unix/Linux: today, they all support a hierarchical directory structure. The differences are in the details (mount points vs drive letters), but all use a hierarchical directory structure.

The accepted answer to question Is there a reason why MS-DOS didn't use more English words for commands? says DOS 2.0 added hierarchical directory structure, so I believe Unix had it before DOS.

But was the hierarchical directory structure invented for Unix? Or was there something before Unix that supported a similar hierarchical directory structure?

  • 4
    Wikipedia claims it was Multics: en.m.wikipedia.org/wiki/Multics "Multics was the first Operating System to provide a hierarchical file system" – user3570736 Sep 23 '18 at 19:34
  • 3
    One point of note is necessity. When a medium could only hold 11 files, a hierarchy would not have been necessary and might even have gotten in the way. But as storage mediums got bigger, a hierarchical structure was going to be inevitable. – RichF Sep 23 '18 at 22:06
  • There aren't many good alternative designs to a hierarchical file system - CP/M Plus tried to address the problem of confusingly large amount of files on large media by the addition of user areas which wasn't really practical, but rather, well, confusing. – tofro Sep 24 '18 at 10:42
  • @tofro what's confusing about user areas? It's basically unhierarchical directories which are numbered, not named. – Wilson Sep 25 '18 at 11:47
  • 2
    @wilson: You do a DIR, find there's (apparently) no files on the disk, format it - After formatting, you hear your colleague (with another user number) had stored the crown jewels of files on that disk. I think that matches confusion. – tofro Sep 25 '18 at 12:08
28

The first hierarchical system capable of supporting arbitrary directory structures was designed for Multics, which pre-dates Unix. It is described in A General-Purpose File System For Secondary Storage, although it should be noted that that paper is a design document and doesn’t quite reflect the file system actually implemented a few years later in Multics.

Earlier systems had hierarchical file systems, but not capable of storing arbitrary layouts; see for example the ERMA Mark I’s file system (1958). CTSS (1961) had the concept of directories to some extent, or at least separate storage within the same file system for different users and projects (Dennis M. Ritchie wrote more generally that “a good case can be made that [Unix] is in essence a modern implementation of MIT’s CTSS system”).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.