[Robelle] [SmugBook] [Index] [Prev] [Next]

The Hierarchical File System (HFS)

This explanation of HFS is filed under MPE, since MPE has just acquired a hierarchical file system. However, it really belongs under UNIX, since UNIX was the first system to use an HFS. Even DOS copied the idea from UNIX, and MPE acquired it though POSIX.

In a POSIX directory a filename may be as long as 255 characters selected from A-Z, a-z, 0-9, and dot ".", hyphen "-" or underscore "_". The name may not start with a hyphen, but may start with any other character. For example, a12.txt, 12a-txt and _txt_12a. are all valid names. A POSIX name is case sensitive, so abc is not the same file as ABC. When combined with a hierarchy of directory names to produce the absolute path of the file, a string of much greater length may be created, up to 1023 characters in fact. Directories are separated by a slash "/" character, for example,

/SYS/PUB/CIor /DEV/accounts/src/cobol/rept23.cbl

The start of the POSIX directory is called the root directory and is represented by a slash "/". The root directory may contain files and directories under it. Any directory may contain other directories under it -- this is what makes it hierarchical. For example,


The special character "." by itself refers to the directory itself, while ".." refers to the parent directory. For example, ./qedit-4.3.23 (look for the file in the current directory) or ../src/list.c (go up one level to the parent, then down to the src directory, then look for the file).

On MPE, some of these directories are the accounts of the old directory structure. An account directory may contain subdirectories which represent the groups of the old structure, but the accounts may also now contain POSIX subdirectories and files, and the groups may contain subdirectories as well. Only the directories which are accounts and groups need have valid MPE names. In order to merge the HFS into MPE's existing directory, there is one restriction: names directly below roots, accounts, or groups, are limited to 16 characters in length.

[Robelle] [SmugBook] [Index] [Mpetips] [Prev] [Next]