HURD defines a common interface for translators. The operations in this interface are much closer to the user's view of a file than the kernel's, in many cases resembling Unix commands:
The HURD also includes a few operations not available in the vnode interface, but which have often been wished for:
I have listed only some of the HURD file and directory operations, but even an exhaustive list is not as long as the vfs and vnode interfaces listed in Sections sec-appendix-vnode-vfsops and sec-appendix-vnode-vnodeops.
HURD comes with library implementations for disk-based and network-based translators. Users wishing to write new translators can link with libdiskfs.a or libnetfs.a respectively. If different semantics are desired, only those necessary functions must be modified and relinked. HURD also comes with libtrivfs.a, a trivial template library for file system translators, useful when one needs to write a complete translator from scratch.