summaryrefslogtreecommitdiff
path: root/hurd/translator.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/translator.mdwn')
-rw-r--r--hurd/translator.mdwn165
1 files changed, 0 insertions, 165 deletions
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
deleted file mode 100644
index d504b41f..00000000
--- a/hurd/translator.mdwn
+++ /dev/null
@@ -1,165 +0,0 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012 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 stable_URL]]
-
-[[!toc]]
-
-
-# General Information
-
-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.).
-
-Another way of putting it is that it translates from one representation of a
-data structure into another representation, for example from the on-disk
-[[ext2|ext2fs]] data layout to a traditional file system hierarchy, or from a
-XML file to a virtual hierarchical manifestation. This translation can be a
-bidirectional process, but it need not be.
-
-A translator is usually registered with a specific file system node by using
-the [[`settrans`|settrans]] command.
-
-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.
-
-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.
-
-Also there is an [[writing/example]] about how to write a simple translator.
-
-See some [[examples]] about how to use translators.
-
-There is a [[documentation/translator_primer]].
-
-Marcus Brinkmann has written a document about [[documentation/translators]].
-
-Here are some [[hints_about_debugging_translators|debugging/translator]]
-available.
-
-Read about translator [[short-circuiting]].
-
-The [[concept|concepts]] of translators creates its own problems, too:
-[[open_issues/translators_set_up_by_untrusted_users]], and
-[[open_issues/trust_the_behavior_of_translators]].
-
-
-# Existing Translators
-
-* [[hello]]
-* [[auth]]
-* [[exec]]
-* [[pfinet]]
-* [[pflocal]]
-* [[hostmux]]
-* [[storeio]]
-* [[ext2fs]]
-* [[fatfs]]
-* [[magic]]
-* [[unionfs]]
-* [[nfs]]
-* ...
-
-
-# Translators Being Under Development
-
-* [[random]]
-* [[emailfs]] -- email as a filesystem
-* [[cvsfs]]
-* [[tmpfs]]
-* [[procfs]]
-* [[nsmux]]
-* [[netio]]
-* [[tarfs]]
-* [[gopherfs]]
-* ...
-
-# Translators (only) in Hurdextras
-
-*These Translators are available in the [hurdextras repository](http://savannah.nongnu.org/cvs/?group=hurdextras) but not yet described on this website. They are in varying stages of Development.*
-
-* [jfs](http://www.nongnu.org/hurdextras/#jfs)
-* [httpfs](http://www.nongnu.org/hurdextras/#httpfs)
-* [gopherfs](http://www.nongnu.org/hurdextras/#cvsfs)
-* [memfs](http://www.nongnu.org/hurdextras/#gopherfs)
-* [notice](http://www.nongnu.org/hurdextras/#notice)
-* [pith](http://www.nongnu.org/hurdextras/#pith)
-* [pptop](http://www.nongnu.org/hurdextras/#pptop)
-* [run](http://www.nongnu.org/hurdextras/#run)
-* [smbfs](http://www.nongnu.org/hurdextras/#smbfs)
-* [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs)
-* [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs)
-
-
-# Translator Wishlists
-
- * [[wishlist_1]]
- * [[wishlist_2]]
- * [[open_issues/network_file_system_by_just_forwarding_RPCs]]
- * [[libguestfs]]
-
-
-# Internally
-
-## `*_demuxer` Functions
-
- * IRC, unknown channel, unknown date
-
- <jim-crow> what is a main idea of _demuxer functions in translators?
- <neal> jim-crow: Think of a web server.
- <neal> jim-crow: A typical web server must process many different requests.
- <neal> jim-crow: There are different types of requests.
- <neal> jim-crow: For instance, static pages and dynamically gnereated content.
- <neal> the static pages are processed by one function
- <neal> and the dynamic pages by another
- <neal> the thing that makes the decision which of these functions to pass the request to is the demuxer.
- <jim-crow> neal: ok, I see
- <jim-crow> but what is actually it doing in trivfs_demuxer?
- <neal> it looks at the message id and calls the right server stub
- <jim-crow> for example it calls trivfs_io_server function, but I can't find its implementation
- <jim-crow> that's my main question :-)
- <neal> look at the files mig generates
- <jim-crow> neal: ok, thanks
- <jim-crow> neal: is this functions where actually stubs are called?
- <neal> I think so.
-
-
-# Bounties
-
-There is a [[!FF_project 280]][[!tag bounty]] on some translator improvement
-tasks.