Skip to content

Introduction

The management of fonts in large, heterogeneous environments is one of the hardest aspects of using the X Window System [1] . Multiple formats and the lack of a consistent mechanism for exporting font data to all displays on a network prevent the transparent use of applications across different display platforms. The X Font Service protocol is designed to address this and other issues, with specific emphasis on the needs of the core X protocol. Upward-compatible changes (typically in the form of new requests) are expected as consensus is reached on new features (particularly outline font support).

Currently, most X displays use network file protocols such as NFS and TFTP to obtain raw font data which they parse directly. Since a common binary format for this data doesn't exist, displays must be able to interpret a variety of formats if they are to be used with different application hosts. This leads to wasted code and data space and a loss of interoperability as displays are used in unforeseen environments.

By moving the interpretation of font data out of the X server into a separate service on the network, these problems can be greatly reduced. In addition, new technologies, such as dynamically generating bitmaps from scaled or outline fonts, can be provided to all displays transparently. For horizontal text, caching techniques and increased processor power can potentially make rasterization more efficient on large, centralized hosts than on individual displays.

Each font server provides sets of fonts that may be listed and queried for header, property, glyph extents, and bitmap information. This data is transmitted over the network using a binary format (with variations to support different bit- and byte-orders) designed to minimize the amount of processing required by the display. Since the font server, rather than the display, is responsible for parsing the raw font data, new formats can be used by all displays by modifying a single font server.

From the user's point of view, font servers are simply a new type of name in the X font path. Network name services allow descriptive names (such as DEPARTMENT-FONTS or APPLICATION-FONTS) to be translated into proper network addresses. X displays send requests to and read replies from the font server rather than reading directly from files. Since the X Font Service protocol is designed to allow subsets of the font data to be requested, displays may easily implement a variety of strategies for fine-grained demand-loading of glyphs.