Examples
  1. MS-DOS
    1. Linked files with a FAT.
    2. FAT is loaded into memory on mount.
    3. Size of offset has varied (bits): FAT-12, FAT-16, FAT-32 (which is actually 28).
    4. Block size.
      1. Originally 512.
      2. Now configurable multiple, up to 4K.
    5. Max partition size is the block size times two to the offset size, so have had to increase.
    6. Fixed-size directory entry
      1. Time is seconds, minutes, and hours.
      2. Date is day, month, and years since 1980.
      3. File names limited to 8 and 3.
    7. Windows 95 uses a trick to store longer names in successive otherwise-unused entries.
  2. CD-ROM (ISO 9660)
    1. Format invented for music.
    2. Disk has blocks of 2048 bytes.
    3. Blocks are on a spiral, and can be identified by playing time, 75 blocks/second.
    4. Disk begins with fixed size block.
      1. 16 blocks for any use the creator desires.
      2. Primary volume descriptor: fields for system id, owner, etc.
      3. Parameters, such as block size.
      4. Directory entry for the root.
    5. Fixed-size directory entries.
      1. Entries are alphabetical by file name, except the first two. These are this directory and its parent.
      2. Files don't need to be in the same order.
      3. Location and size specify the file location, which is contiguous.
      4. Timestamp is separate bytes for year, month, day, hour, minute, second, and time zone. Start at 1900.
      5. Flags denote directories, last entry, and other things.
      6. The CD# say which CD has the file. Sets are allowed.
      7. L is the length of the file name.
      8. Sys is whatever the system wants to do.
    6. Directories can only be nested to 8 levels.
    7. Levels vary the strictness.
      1. Level 1: 8/3 filenames, 8-char directory names, contiguous files.
      2. Level 2: Names to 31 characters.
      3. Level 3: Allows files to be non-contiguous, and data appearing in multiple files may be recorded once.
    8. Extensions.
      1. Rock Ridge. For Unix systems.
        1. Uses the Sys field, since systems that don't understand will ignore it.
        2. Series of fields recording what Unix needs to record.
          1. PX: POSIX attributes (Unix permissions).
          2. PN: Device number needed to record dev entries.
          3. SL: Symbolic link.
          4. NM: Alternative name, which is not subject to ISO restrictions.
          5. CL, PL, RE: Child location, Parent location, Relocation. This creates an alternate tree structure to get around the depth restriction.
          6. TF: Timestamps. The unix create, modify, and access.
      2. Joliet. For Windows.
        1. Longer file names, using Unicode characters.
        2. No nesting limit.
        3. Directory name extensions (just in case).
  3. Unix