HFS Plus is an improved version of HFS (Hierarchical File System), which supports much larger files (block addresses are 32-bit length instead of 16-bit). It uses a full 32-bit allocation mapping table. Mac OS Extended format is a hard disk format that increases the number of allocation blocks on the disk. This format also allows more than 65,000 files on the hard disk. Mac OS Extended format optimizes the storage capacity of large hard disks by decreasing the minimum size of a single file.
The following nine structures make up a typical HFS Plus volume:
- HFS boot blocks: These are Sectors 0 and 1 of the volume & are identical to the boot blocks in an HFS volume.
- Volume Header: Volume header is contained in sector 2 which is equivalent to the Master Directory Block in an HFS volume. It stores a wide variety of data about the volume like the size of allocation blocks, a timestamp that indicates when the volume was created or the location of other volume structures such as the Catalog File or Extent Overflow File. The location of the Volume Header is always constant.
- Allocation File: It keeps track of which allocation blocks are free and which are in use. A zero means the block is free and a one means the block is in use. The main difference with the HFS Volume Bitmap is that the Allocation File is stored as a regular file; it does not occupy a special reserved space near the beginning of the volume. The Allocation File can also change size and does not have to be stored contiguously within a volume.
- Catalog File: Catalog file is a binary tree that contains records for all the files and directories stored in the volume. A record in the HFS Plus Catalog File is 4 KB in Mac OS and 8KB in OS X. Fields in HFS are of fixed size, in HFS Plus the size can vary depending on the actual size of the data they store.
- Extents Overflow File: This is another B-tree that records the allocation blocks that are allocated to each file as extents. Each file record in the Catalog File is capable of recording eight extents for each fork of a file; once those are used additional extents are recorded in the Extents Overflow File. Bad blocks are also recorded as extents in the Extents Overflow File.
- Startup File: This file is designed for non-Mac OS systems that don't have HFS or HFS Plus support. It is similar to the Boot Blocks of an HFS volume.
- The second to last sector contains the Alternate Volume Header equivalent to the Alternate Master Directory Block of HFS.
- The last sector in the volume is reserved for use by Apple. It is used during the computer manufacturing process.
HFS+ supports journaling, a feature that allows quick recovery of the file system's status should anything unplanned happen to the machine — e.g. a power failure or a disk crash. With a journaled file system, the operating system can easily undo or redo the last operations executed on the disk without losing meta-data, effectively avoiding a full file system check.
However, journaling introduces a performance penalty for write operations. Every time the operating system has to modify the file system, it must first update the journal, then execute the real operation and at last mark the operation as completed in the journal. User has the option to enable / disable journaling
(Mac OS 8.1 and Later)
All systems having Mac OS 8.1 or later installed in it can access the files on a Mac OS Extended format volume that is internally or externally connected to the Mac system. If a Mac OS Extended format volume is connected to a computer running Mac OS 8 or earlier, none of the files would be visible. A single document would show up, explaining that your files are still on the hard disk, but inaccessible. You will gain access to those files once you connect that hard disk to a computer running Mac OS 8.1 or later.