It should also be noted that 68040 machines cannot read HFS+ disks, whether or not they are running Mac OS 8.1 (Except of course when accessing the disk via file sharing)
Other differences and improvements over HFS include:
- Increased maximum file size: On an HFS disk, files are limited in size to 2GB (due to the used of signed 32 bit integers to store file lengths). Under HFS+, maximum file size is a tad over 9 exabytes (2^63 - 1).
- The startup file: This is a special file that is easily locatable during startup, even by systems that do not support HFS/HFS+ in ROM. It is in maby ways a generalisation of HFS boot blocks. Not currently used by the Mac OS, it is designed to make it easier for alternative operating systems to boot from HFS+ formatted drives.
- Dates: While HFS and HFS+ both store the date in seconds since midnight, January 1st 1904, HFS+ stores dates as GMT, whereas HFS uses local time. The exception to this is volume creation dates which are still given in local time.
- Support for permissions: whereas HFS stores no permissions data with files/folders, HFS+ does.
Unfortunately, although all this was in place by Mac OS 8.1, it wasn't until Mac OS 9 that there was an API that would allow us mere mortals to use these capabilities. As a result there are precious few applications under Mac OS 9 that can handle large files or long file names. Even the Finder cannot display long file names. It was not until Mac OS X that we were to embrace the joys of 255 character file names.
A compatibility mechanism exists so that applications that were written with the APIs limited to 31 character names can sucessfuly access files with longer names. When a user tries to use a file with a long name with such an application, be it by doubleclicking on a file, AppleEvents etc., the application gets a mangled version of the file name. This name is obtained by shortening the name as necessary and adding a # sign followed by some hexadecimal numbers. If the file has an extension, it is left intact and the # and hexadecimal characters are put immediately before it. Untranslatable Unicode characters are replaced by question marks. For example, MyFileWithaVeryVeryLongAndQuitePointlessName.txt would become something like MyFileWithAVeryVeryLon#AC1D.txt
Applications can use this mangled name to refer to the file, open, move delete etc, as if it was the file's real name.
While HFS+ introduced some major changes, it was very much designed as an extension to HFS. Existing applications work transparently with HFS and HFS+ (except of course those working at a very low level with the disk, such as repair programs).