From Computer History Wiki
Jump to: navigation, search

A directory is a key element of the organization of a mass storage system or (more recently) a data networking system.

In the former, they record which files are stored in that system, along with some information about them (such as where they are stored). In the latter, they indicate where in the network various classes of elements (data, hosts, etc) may be found.

Mass storage systems

In a mass storage system, directories exist primarily in file systems, where they typically contain collections of related files, and allow those files (and their contents) to be found, so that they can be used. They are also to be found in other mass storage systems, such as on magnetic tapes.

Originally, along with the information as to which blocks were part of a file, directories contained other meta-information about the file (date last modified, etc); this approach was used in early operating systems such as CTSS and TOPS-10, as well as later ones like Multics and Windows.

UNIX started a new approach, in which most information about a file (particularly, which blocks were used to hold it) was kept in a separate structure (called an inode in UNIX); directories (usually implemented as an abstraction on top of that file layer) only held mappings from file-names (visible to users) to inode numbers.

Data networking systems

In a data network, some means must be provided for users of the network to find the various resources provided through (which seems like by, to the users) the network. One or more (many more, in very large data networks like the modern Internet) directory systems perform this function.

In the earliest stages - for example, on the ARPANET - a means was needed to translate between the names of hosts (which were in a form suited for use by humans), and their addresses (which were suited for use by the various software elements which implemented the network's services). There, these were initially provided by files, the host tables, which contained mappings from the human-suited names to the addresses. The host tables were updated as things changed, and periodically, updated ones were distributed to all the sites.

As the network grew, this was no longer feasible; changes were happening too often, and the amount of data also grew too large. The Domain Name System was devised as a distributed database, which could contain those mappings; it was, in effect, a directory of the hosts on the Internet.