This article is from the CD-Recordable FAQ, by Andy McFadden (email@example.com) with numerous contributions by others.
Level 1 ISO-9660 defines names to be the familiar 8+3 convention that
MS-DOS users have suffered through for many years: eight characters for the
name, a period ("full stop" for those of you in the U.K.), followed by
three characters for the file type, all in upper case. The only allowed
characters are A-Z, 0-9, '.', and '_'. There's also a file version number,
separated from the name by a semicolon, but it's usually ignored.
Files must occupy a contiguous range of sectors. This allows a file to be
specified with a start block and a count. (Most disk-based filesystems
require index blocks that list all the blocks used by a file.) The maximum
directory depth is 8.
Level 2 ISO-9660 allows far more flexibility in filenames, but isn't usable
on some systems, notably MS-DOS.
Level 3 ISO-9660 allows non-contiguous files, useful if the file was
written in multiple packets with packet-writing software. Also unavailable
under MS-DOS. For the Mac, you can add support by installing Joliet
Volume Access (http://www.tempel.org/joliet/).
Some of the CD creation programs will let you select how closely you want
the CD to conform to the ISO-9660 standard. For example, Easy-CD Pro 95
can restrict filenames to be ISO-9660 compliant, or allow the full set
of valid MS-DOS filenames. (Most systems can handle MS-DOS filenames.)
Incidentally, the ISO-9660 spec requires that all files be displayed in
alphabetical order, with directories first, no matter how they are recorded
on the CD-ROM. You can't arrange files on the disc, because the ISO-9660
reader (e.g. MSCDEX) sorts them before displaying them.
A copy of the specification can be purchased from http://www.iso.org/.