However MFS was optimised to be used on very small and slow media, namely floppy disks, so HFS was introduced to overcome some of the performance problems that arrived with the introduction of larger media, notably hard drives. 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 B*-tree 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 64k files.
While HFS is a proprietary file system format, it is well documented so there are usually solutions available to access HFS formatted disks from most modern operating systems.
HFS was first widely introduced with System 3.0 which debut with the Macintosh Plus in January 1986 along with the larger 800K floppy disk drive for the Macintosh. More importantly, HFS was hard-coded into new 128K ROM, freeing not only space from the system software disk, but also RAM. However, RAM based HFS support was also implemented for use with the earlier Macintosh 512K's 64K ROM through the addition of an INIT file on the System Disk.
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.
The Hierarchical File System divides a volume into logical blocks of 512 bytes. These logical blocks are then grouped together 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,536.
There are five structures that make up an HFS volume:
The Catalog File, which stores all the file and directory records in a single data structure, results in performance problems when the system allows multitasking, 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 filesystems that store file and directory records in separate structures (such as DOS's FAT file system or the Unix File System), 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.
Agency Reviews Patent Application Approval Request for "Method of Updating Scroll Bar in Screen of User Terminal and User Terminal for Updating Scroll Bar in Screen"
Apr 11, 2013; By a News Reporter-Staff News Editor at Politics & Government Week -- Kakao Corp. has been issued patent application serial...
US Patent Issued to Intuit on June 5 for "Method and System for Providing Scroll Bar Enabled Bookmarks in Electronic Document Displays" (Indian Inventor)
Jun 12, 2012; ALEXANDRIA, Va., June 12 -- United States Patent no. 8,196,061, issued on June 5, was assigned to Intuit Inc. (Mountain View,...
US Patent Issued to Elan Microelectronics, Elan Tech Devices on Feb. 19 for "Method for Scroll Bar Control on a Touchpad" (Taiwanese Inventors)
Feb 21, 2013; ALEXANDRIA, Va., Feb. 21 -- United States Patent no. 8,378,973, issued on Feb. 19, was assigned to Elan Microelectronics Corp....
Wipo Publishes Patent of Guangzhou Ucweb Computer Technology, Jie Liang and Weizhong Jiang for "Method, Device and Mobile Terminal for Controlling Interface Display by Scrolling Scroll Bar" (Chinese Inventors)
Oct 18, 2013; GENEVA, Oct. 18 -- Publication No. WO/2013/152722 was published on Oct. 17.Title of the invention: "METHOD, DEVICE AND MOBILE...