The HFS Plus filesystem
In 1996, Apple developed a new filesystem, HFS, to accommodate the storage of large datasets. In an HFS filesystem, the storage medium is represented as volumes. HFS volumes are divided into logical blocks of 512 bytes. The logical blocks are numbered from first to last on a given volume and will remain static with the same size as physical blocks—that is, 512 bytes. These logical blocks are grouped together into allocation blocks, which are used by the HFS filesystem to track data in a more efficient way. HFS uses a 16-bit value to address allocation blocks, which limits the number of allocation blocks to 65,535. To overcome the inefficient allocation of disk space and some of the limitations of HFS, Apple introduced the HFS Plus filesystem (http://dubeiko.com/development/FileSystems/HFSPLUS/tn1150.html).
The HFS Plus filesystem was designed to support larger file sizes. Sectors on HFS volumes are usually 512 bytes in size. These sectors form allocation blocks. The number of such blocks depends on the size of the volume. HFS Plus uses block addresses of 32 bits to address allocation blocks. HFS Plus uses journaling by default. Journaling is the process of logging every transaction to the disk, which helps prevent filesystem corruption. The key characteristics of the HFS Plus filesystem include the following: efficient use of disk space, Unicode support for filenames, support for name forks, file compression, journaling, dynamic resizing, dynamic defragmentation, and an ability to boot on OSes other than macOS.