Hesiod is a simple string lookup service built on top of the Domain Name System. Conceptually, the service translates a pair of strings (the "name" and "type") into a set of result strings. This lookup is done very simply; a DNS lookup is done for name.type.ns.athena.mit.edu and the strings in the resulting TXT records are returned. Hesiod is used in several places in Debathena: * Retrieving a user's entries in the passwd and group databases * Determining which mail system they're using and if IMAP, which server to speak to * Translating a locker name to an AFS path, including the user's homedir * Determining a workstation's "cluster" information, including whether or not the workstation is designated as a "public" cluster machine, whether it pulls from the production APT repo or the development/proposed repos * Determining service information (port/protocol pairs) * Determining servers for a specific service Hesiod may, in some cases, be used to select a default printer for a specific workstation. This information is ignored in the public cluster environment. Hesiod can be queried with the `hesinfo` command. The `hes` command in the `consult` locker takes a Hesiod name and iterates over all possible Hesiod types.