[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_documentation]] IRC, freenode, #hurd, 2011-11-12: So hurd implements a 'transparent translator' somewhere which just passes all IO calls to the posix IO I'm used to? (i.e. read, write, open, close, etc.?) it's the normal way of operation glibc's read() doesn't do a system call, it always does an RPC to the underlying translator be it ext2fs for /, or your foobarfs for your node Ok that makes sense. How does one program know which translator it should refer to though? the read() call magically knows which process to invoke? the / translator is always known and then you ask /'s translator about /home, then /home/you, then /home/you/foobar it tells you which other translator tyou have to contact that's on open It's a tree! Ok. the notion of fd is then simply knowing the translator Right. 'file descriptor' is now 'translator address descriptor' maybe. it's glibc which knows about FDs, nothing else knows yes actually an RPC port, simply I want to try out the new RPC mechanism that mach implements err, which "new" RPC ? mach's RPCs are very old actually :)