Generic Hierarchical File System Software

Posted on
Generic Hierarchical File System Software Rating: 6,9/10 1237 votes

I think Multics introduced the and presented it at the 1965 Fall Joint Computer Conference. (The reference is one of the papers from that conference, describing the filesystem.) Unix of course also has an hierarchical filesystem, which it seems to have inherited from Multics. The says: Unix also popularized the hierarchical file system with arbitrarily nested subdirectories, originally introduced by Multics. Other common operating systems of the era had ways to divide a storage device into multiple directories or sections, but they had a fixed number of levels, often only one level. Several major proprietary operating systems eventually added recursive subdirectory capabilities also patterned after Multics. DEC's RSX-11M's 'group, user' hierarchy evolved into VMS directories, CP/M's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's SSP and OS/400 library systems were folded into broader POSIX file systems. The earliest hierarchical file system with which I had personal experience at the time of its release was, introduced with VMS in 1979.

An early hierarchical file system was developed for the Electronic Recording Machine Accounting (ERMA) Mark 1, as presented in this 1958 Eastern Joint Computer Conference paper: Fig. 3 is self-explanatory. It shows the arrangement of the records in the file folders. This file system is 'closed' in the sense that it is bounded by the decimally integral coding of categories from 00 to 100 and by an exahustive listing of generic attributes and categories. However, it is expandable in the sense that, when necessary. New entries are permitted within the subcategories and parameters without resorting to modification of the original file structure. For example, categories test equipment-51, external equipment-52, and tools-53, were added later in the only reasonable location; in the 50 series, auxiliary equipment.

This method of adding new categories to the file can be likened to the use of the familiar accordian file in which a suitable pocket can be stretched to fit new material, but the structure of the containing folds of the file and its major pockets remain unchanged; This is in contrast to a file of rigid construction in which the only recourse for addition is to append material or to make a new container. I am by no means sure about this information, but wasn't the ICL system for storing on high speed drums (concrete cored) a hierarchical system? This is at about the same time as the ICL CAFS system which (like Don's answer) was first introduced in 1965. EDIT The ICL system may fall into the category (described by Don from the Wikipedia article ) as having a fixed number of levels. I don't know where to find the information to resolve whether or not it was truly hierarchical. The ICL system was developed from the LEO range (of several companies that were combined to form ICL) which did not (AFAIK) have any persistent storage - being reliant on mercury delay lines for temporary storage.

For other uses, see. HFS Full name Hierarchical File System Introduced September 17, 1985 with AppleHFS 0xAF HFS and HFS+ Structures Directory contents File allocation Bad blocks Limits Max. Volume size 2 ( 2 × 1024 4 bytes) Max. File size 2 ( 2 × 1024 3 bytes) Max. Number of files 65535 Max.

Filename length 31 characters Allowed characters in filenames All 8-bit values except colon ':'. Discouraged null and nonprints. Features Dates recorded Creation, modification, backup Date range January 1, 1904 - February 6, 2040 Date resolution 1s Only 2 (data and resource) Attributes Color (3 bits, all other flags 1 bit), locked, custom icon, bundle, invisible, alias, system, stationery, inited, no INIT resources, shared, desktop AppleShare Transparent compression Yes (third-party), No Other Supported, (through MacDrive or drivers) Hierarchical File System ( HFS) is a developed by for use in computer systems running. Originally designed for use on and, it can also be found on read-only media such as. HFS is also referred to as Mac OS Standard (or, erroneously, 'HFS Standard'), while its successor, is also called Mac OS Extended (or, erroneously, 'HFS Extended'). With the introduction of, Apple dropped support for formatting or writing HFS disks and, which remain supported as volumes.

This section does not any. Unsourced material may be challenged and. (January 2017) HFS was introduced by Apple in September 1985, specifically to support Apple's first for the Macintosh, replacing the (MFS), the original file system which had been introduced over a year and a half earlier with the first computer. HFS drew heavily upon Apple's first hierarchical operating system for the failed, which also served as the basis for hierarchical filing systems on the and. HFS was developed by Patrick Dirks and Bill Bruffey. It shared a number of design features with MFS that were not available in other file systems of the time (such as 's ). Files could have multiple forks (normally a data and a ), which allowed the main data of the file to be stored separately from resources such as icons that might need to be localized.

Generic Hierarchical File System Software

Files were referenced with unique file IDs rather than file names, and file names could be 255 characters long (although the only supported a maximum of 31 characters). However, MFS had been optimized to be used on very small and slow media, namely, so HFS was introduced to overcome some of the performance problems that arrived with the introduction of larger media, notably. The main concern was the time needed to display the contents of a folder. Under MFS all of the file and directory listing information was stored in a single file, which the system had to search to build a list of the files stored in a particular folder. This worked well with a system with a few hundred kilobytes of storage and perhaps a hundred files, but as the systems grew into megabytes and thousands of files, the performance degraded rapidly.

The solution was to replace MFS's directory structure with one more suitable to larger file systems. HFS replaced the flat table structure with the Catalog File which uses a structure that could be searched very quickly regardless of size.

HFS also re-designed various structures to be able to hold larger numbers, 16-bit integers being replaced by 32-bit almost universally. Oddly, one of the few places this 'upsizing' did not take place was the file directory itself, which limits HFS to a total of 65,535 files on each logical disk. While HFS is a proprietary file system format, it is well-documented; there are usually solutions available to access HFS-formatted disks from most modern.

File

Apple introduced HFS out of necessity with its first 20 MB offering for the Macintosh in September 1985, where it was loaded into RAM from a MFS floppy disk on boot using a patch file ('Hard Disk 20'). However, HFS was not widely introduced until it was included in the 128K that debuted with the in January 1986 along with the larger 800 KB floppy disk drive for the Macintosh that also used HFS. The introduction of HFS was the first advancement by Apple to leave a Macintosh computer model behind: the original, which lacked sufficient memory to load the HFS code and was promptly discontinued. In 1998, Apple introduced to address inefficient allocation of disk space in HFS and to add other improvements.

HFS is still supported by current versions of Mac OS, but starting with, an HFS volume cannot be used for, and beginning with (Snow Leopard), HFS volumes are read-only and cannot be created or updated. In (10.12), Apple's release notes state that 'The HFS Standard filesystem is no longer supported.' However, read-only HFS Standard support is still present in Sierra and works as it did in previous versions. This section does not any.

Android Generic Hierarchical File System

System

Unsourced material may be challenged and. (January 2017) A storage volume is inherently divided into logical blocks of 512 bytes. The Hierarchical File System groups these logical blocks into allocation blocks, which can contain one or more logical blocks, depending on the total size of the volume.

HFS uses a 16-bit value to address allocation blocks, limiting the number of allocation blocks to 65,535 (2 16-1). Five structures make up an HFS volume:. Logical blocks 0 and 1 of the volume are the, which contain system startup information.

For example, the names of the System and Shell (usually the ) files which are loaded at startup. Logical block 2 contains the Master Directory Block (aka MDB). This defines a wide variety of data about the volume itself, for example date & time stamps for when the volume was created, the location of the other volume structures such as the Volume Bitmap or the size of logical structures such as allocation blocks. There is also a duplicate of the MDB called the Alternate Master Directory Block (aka Alternate MDB) located at the opposite end of the volume in the second to last logical block. This is intended mainly for use by disk utilities and is only updated when either the Catalog File or Extents Overflow File grow in size. Logical block 3 is the starting block of the Volume Bitmap, which keeps track of which allocation blocks are in use and which are free.

Each allocation block on the volume is represented by a bit in the map: if the bit is set then the block is in use; if it is clear then the block is free to be used. Since the Volume Bitmap must have a bit to represent each allocation block, its size is determined by the size of the volume itself.

The Extent Overflow File is a that contains extra extents that record which allocation blocks are allocated to which files, once the initial three extents in the Catalog File are used up. Later versions also added the ability for the Extent Overflow File to store extents that record bad blocks, to prevent the file system from trying to allocate a bad block to a file. The Catalog File is another that contains records for all the files and directories stored in the volume. It stores four types of records. Each file consists of a File Thread Record and a File Record while each directory consists of a Directory Thread Record and a Directory Record. Files and directories in the Catalog File are located by their unique Catalog Node ID (or CNID).

A File Thread Record stores just the name of the file and the CNID of its parent directory. A File Record stores a variety of metadata about the file including its CNID, the size of the file, three timestamps (when the file was created, last modified, last backed up), the first of the data and resource forks and pointers to the file's first data and resource extent records in the Extent Overflow File. The File Record also stores two 16 byte fields that are used by the Finder to store attributes about the file including things like its, the window the file should appear in and its location within the window.

A Directory Thread Record stores just the name of the directory and the CNID of its parent directory. A Directory Record which stores data like the number of files stored within the directory, the CNID of the directory, three timestamps (when the directory was created, last modified, last backed up). Like the File Record, the Directory Record also stores two 16 byte fields for use by the Finder. These store things like the width & height and x & y co-ordinates for the window used to display the contents of the directory, the display mode (icon view, list view, etc.) of the window and the position of the window's scroll bar. Limitations. This section needs additional citations for. Unsourced material may be challenged and removed.

(January 2017) The Catalog File, which stores all the file and directory records in a single data structure, results in performance problems when the system allows, as only one program can write to this structure at a time, meaning that many programs may be waiting in queue due to one program 'hogging' the system. It is also a serious reliability concern, as damage to this file can destroy the entire file system.

This contrasts with other file systems that store file and directory records in separate structures (such as DOS's FAT file system or the ), where having structure distributed across the disk means that damaging a single directory is generally non-fatal and the data may possibly be re-constructed with data held in the non-damaged portions. Additionally, the limit of 65,535 allocation blocks resulted in files having a 'minimum' size equivalent 1/65,535th the size of the disk. Thus, any given volume, no matter its size, could only store a maximum of 65,535 files.

Moreover, any file would be allocated more space than it actually needed, up to the allocation block size. When disks were small, this was of little consequence, because the individual allocation block size was trivial, but as disks started to approach the 1 GB mark, the smallest amount of space that any file could occupy (a single allocation block) became excessively large, wasting significant amounts of disk space.

For example, on a 1 GB disk, the allocation block size under HFS is 16 KB, so even a 1 byte file would take up 16 KB of disk space. This situation was less of a problem for users having large files (such as pictures, databases or audio) because these larger files wasted less space as a percentage of their file size. Users with many small files, on the other hand, could lose a copious amount of space due to large allocation block size.

This made partitioning disks into smaller logical volumes very appealing for Mac users, because small documents stored on a smaller volume would take up much less space than if they resided on a large partition. The same problem existed in the FAT16 file system. HFS saves the case of a file that is created or renamed but is case-insensitive in operation. See also.

References.