Here is the problem that X developers posed to themselves. A given application needs a certain amount of information to select a font. This information may be commercial (foundry name), graphical (family name, weight, style, set width, point size, resolution [in the case of a bitmap font]), or technical (the encoding). Usually we expect to find this information in the font, or in a file accompanying the font, for every font that we have. If we have thousands of fonts on our system,[8-1] how can we avoid having to open them all in order to collect this information?
[8-1] Having merely installed Fedora (a rather popular Linux distribution) version 5, the author found himself with 2,464 (!) font files on his computer. But take note: under Unix, a font file contains only one point size and in a single encoding. Conversely, under Mac OS and Windows, there are far fewer files, for two reasons: first, the different point sizes of bitmaps are stored in the same file (and there is no need for them when the font is a vector font); second, we often use not just one encoding but two: the standard encoding for the language of the operating system and, if necessary, Unicode.
The solution to these problems is to use a database containing the filenames and all this other data, and that is what X does.
Next, these same developers set out to solve another problem, that of the classification of fonts and interaction with the human user. It was necessary ...