Filesystem
ProDOS uses the same filesystem as the earlier Apple SOS for the Apple III. The SOS/ProDOS filesystem is native to Apple SOS, ProDOS 8, ProDOS 16, and GS/OS. Some Mac OS versions also come with a file system translator to handle this filesystem.
A volume is allocated in 512 byte blocks. (5.25" floppy disks were still formatted using 256-byte sectors, as this is the format required by the controller ROM to boot the disk. ProDOS simply treats pairs of 256-byte sectors as a single block on such drives.) A volume can have a capacity of up to 32 megabytes, and each file can be up to 16 megabytes. Each volume (disk or hard drive partition) has a "volume name", a filename which is used as the base directory name; having two volumes with the same volume name could result in conflicts. If necessary, ProDOS would search all available drives to find a named volume. Subdirectories are supported, and the concept of a "prefix" (working directory or current path) was provided to make working with subdirectories easier.
File, directory, and volume names can be 1 to 15 characters, starting with a letter then containing letters, digits, or periods. Each file entry also contains the 16 bit (2 byte) pointer to the block containing the beginning of the file (or its block index); a 16 bit block count; a 24 bit (3 byte) file size; an 8 bit (1 byte) filetype; a 16 bit auxiliary type (the meaning of which depends upon the filetype); creation and modification timestamps; and data related to how the file is stored on the volume. Sparse files are supported. The volume header contains similar information as relevant to volumes.
Directories (including the root directory) are sequentially indexed, with each block starting with the addresse of the previous block (or zero if none) and the subsequent block (or zero if none). The root directory on most disks is initialised to 4 blocks, allowing 51 entries (excluding the volume header). It never changes in size, except by manual intervention with special tools. Subdirectories begin at one block, and grow automatically as needed.
Normal files are progressively indexed. Single block files (under 513 bytes) have no index block; the directory entry points directly to the block of file data. Files with between 2 and 256 blocks (513 bytes to 128 kB) of data have a single index block, to which the directory entry points, which contains a list of up to 256 data block addresses. Larger files have a master index block containing a list of up to 256 index block addresses.
The volume has a bitmap of used blocks. Other than this there is no central file allocation table.
Almost every ProDOS 8 volume has a boot sector that supports both ProDOS and SOS. This allows a disk to be used to boot on either Apple II or Apple III computers by putting both operating system kernels in the top directory: the Apple II boot sector looks for the file PRODOS and the Apple III boot sector looks for the file SOS.KERNEL.
ProDOS has no kernel support for other filesystems. If necessary, a conversion utility on the main system disk is used to transfer files individually between ProDOS and older Apple DOS 3.3 disks.
Read more about this topic: Apple ProDOS