Recent Articles



































Hierarchical File System



         


HFS is an acronym for Hierarchical File System, a format specification of a file system for storing files on floppy and hard disks by Apple computers running Mac OS, but can also be found on read-only media such as CD-ROMs.

[Top]

History

HFS was introduced in January 1986 as a new file system for Macintosh computers. It superseded the Macintosh File System (MFS) which was a flat file system, used only on the earliest Mac models. Because Macintosh computers use richer data than other commonly available file systems such as FAT used by DOS or the original Unix file system would allow, Apple developed a new more appropriate file system, rather than adopting an existing specification. For example, HFS permits filenames up to 31 characters in length, supports metadata and dual forked (separate data and resource forks per file) files.

While HFS like most other file systems may be seen as a proprietary format, because it was so well documented there are usually solutions available to access HFS formatted disks from most modern operating systems.

In 1998, Apple introduced HFS Plus 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 Mac OS X an HFS volume cannot be used for booting.

[Top]

Design and implementation

These are the structures that make up HFS volumes:

Each file is made up of a File Thread Record which stores just the name of the file and the CNID of its parent directory and a File Record which 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 file extents 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 creator code, type code, the window the file should appear in and its location within the window.
Similarly each directory is made up of a Directory Thread Record which stores just the name of the directory and the CNID of its parent directory and a Directory Record which stores data like the number of files stored within the directory, the CNID of the directory, three timestamps (when the file 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.
[Top]




  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License