A translator is simply a normal program acting as an object server and participating in the Hurd's distributed virtual file system. It is so-called because it typically exports a file system (although need not: cf. ?auth, ?proc and pfinet) and thus translates object invocations into calls appropriate for the backing store (e.g., ext2 file system, nfs server, etc.).

Translators do not require any special privilege to run. The privilege they require is simply that to access the indiviudal resources they use. This is primarily the ?backing store and the node they attach to. Typically, a translator can only be attached to a node by the node's owner. On Unix this is not possible because file systems and the virtual file system are implemented in the kernel and thus have absolute access to the machine. As the protocols do not require any special privilege to implement, this is not an issue on the Hurd.

To learn how to write a translator, read the code! It is well documented, in particular, the header files. The Hurd Hacking Guide also has a tutorial.

Also there is an example about how to write a simple translator.

See some examples about how to use translators.

Existing Translators

Translators Being Under Development

Translator wishlist