path: root/hurd/translator.mdwn
diff options
authorThomas Schwinge <>2009-10-06 14:42:43 +0200
committerThomas Schwinge <>2009-10-06 14:51:05 +0200
commit80edc6ab43ce69dee3e50dddd59784b6102c5d8c (patch)
tree6d359382534df61561b103a7c05e175fac832be7 /hurd/translator.mdwn
parent7074ada224a2033f84f87d343378e84b7ae7771a (diff)
hurd/translator: The (non-)difference between server and translator.
Diffstat (limited to 'hurd/translator.mdwn')
1 files changed, 11 insertions, 0 deletions
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
index 158f53d7..e567938f 100644
--- a/hurd/translator.mdwn
+++ b/hurd/translator.mdwn
@@ -33,6 +33,17 @@ 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.
+In Mach parlance, a *translator* is what they name a *server*: a process that
+participates in [[RPC]] interactions. In the Hurd, a translator is a server
+that is additionally attached to a filesystem node. Thus, it is quite common,
+even in the Hurd context, to speak about *server*s if you're stressing the RPC
+part, and on the other hand about *translator*s if you're stressing the
+filesystem part: a translator implements the [[interface/fs]] and
+[[interface/io]] interfaces. For example: *the [[pfinet]] server implements
+the socket API calls (which are mapped by [[glibc]] to equivalent RPC calls)*,
+compared to *a [[libdiskfs]]-based translator implements a filesystem, based on
+a backing store*.
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.