A CD-ROM drive uses an
optically read, plastic coated disk.
The information is recorded on the surface of the disk
in small `holes' aligned along a spiral from the center to the edge.
The drive directs a laser beam along the spiral to read the disk.
When the laser hits a hole, the laser is reflected in one way; when
it hits smooth surface, it is reflected in another way. This makes
it easy to code bits, and therefore information. The rest is easy,
CD-ROM drives are slow compared to hard disks. Whereas a
typical hard disk will have an average seek time less than 15
milliseconds, a fast CD-ROM drive can use tenths of a second for
seeks. The actual data transfer rate is fairly high at hundreds of
kilobytes per second. The slowness means that CD-ROM drives are not
as pleasant to use as hard disks (some Linux distributions provide
`live' filesystems on CD-ROMs, making it unnecessary to copy the
files to the hard disk, making installation easier and saving a lot
of hard disk space), although it is still possible. For installing
new software, CD-ROMs are very good, since maximum speed is not
essential during installation.
There are several ways to arrange data on a CD-ROM. The most
popular one is specified by the international standard ISO 9660
This standard specifies a very minimal filesystem, which is even
more crude than the one MS-DOS uses. On the other hand, it is so
minimal that every operating system should be able to map it to its
For normal UNIX use, the ISO 9660 filesystem is not usable, so
an extension to the standard has been developed, called the Rock
Ridge extension. Rock Ridge
allows longer filenames, symbolic
links, and a lot of other goodies, making a CD-ROM look more or less
like any contemporary UNIX filesystem. Even better, a Rock Ridge
filesystem is still a valid ISO 9660 filesystem, making it usable by
non-UNIX systems as well. Linux supports both ISO 9660 and the Rock
Ridge extensions; the extensions are recognized and used
The filesystem is only half the battle, however. Most CD-ROMs
contain data that requires a special program to access, and most of
these programs do not run under Linux (except, possibly, under
dosemu, the Linux MS-DOS emulator, or wine, the Windows emulator.
Ironically perhaps, wine actually stands for ``Wine Is Not an
Wine, more strictly, is an API (Application Program
Interface) replacement. Please see the wine documentation at
for more information.
There is also VMWare, a commercial product, which emulates
an entire x86 machine in software. See the VMWare website,
for more information.
A CD-ROM drive is accessed via the corresponding device file.
There are several ways to connect a CD-ROM drive to the computer:
via SCSI, via a sound card, or via EIDE. The hardware hacking
needed to do this is outside the scope of this book, but the
type of connection decides the device file.