bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 6/6] added short documentation for some translators.


From: Joshua Branson
Subject: [PATCH 6/6] added short documentation for some translators.
Date: Thu, 21 Sep 2023 12:48:22 -0400

From: "jbranso@dismail.de" <jbranso@dismail.de>

* doc/hurd.texi (fifo): added a short explanation.
* doc/hurd.texi (ifsock): added a really short explanation.
* doc/hurd.texi (null): added a short explanation.
* doc/hurd.texi (devnode): tiny grammer fix.
* doc/hurd.texi (Storeio): short explanation.
* doc/hurd.texi (Store Library): @code -> @file{<hurd/store.h>
* doc/hurd.texi (Networking): short description of pfinit and lwip.
---
 doc/hurd.texi | 145 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 141 insertions(+), 4 deletions(-)

diff --git a/doc/hurd.texi b/doc/hurd.texi
index 4a89cbec..7bad2976 100644
--- a/doc/hurd.texi
+++ b/doc/hurd.texi
@@ -2968,16 +2968,68 @@ FIXME: finish
 
 @node fifo
 @section fifo
+@cindex fifo
+
+The fifo translator implements named pipes, which is a simple and
+portable inter-process communication.  Usually pipes die when the
+command is completed like so (the ``|'' is the anonymous pipe):
+
+@example
+@verbatim
+$ fsysopts /home | awk '{ print $2 }'
+  --writable
+@end verbatim
+@end example
+
+Alternatively one can @emph{name} a pipe with the command
+@command{mkfifo <name>}, which will persist until you remove it with
+the command @command{rm <name>}.  This lets you use commands that
+interact with the pipe from many different terminals.
+
+FIXME: should we add an example?  Can I borrow what's on wikipedia?
 
 @node ifsock
 @section ifsock
 
+The @code{ifsock} translator acts as a hook to provide Unix domain
+sockets.  The @code{pflocal} translator on @file{/servers/socket/1}
+implements the sockets.
+
 @node magic
 @section magic
+@cindex magic
+
+The magic translator returns magic retry results, which are then
+resolved by glibc's name lookup routines.  This translator runs on the
+mount points @file{/dev/fd} and @file{/dev/tty}.
+
+@example
+$ showtrans /dev/fd
+  /hurd/magic --directory fd
+@end example
+
+The @file{/dev/fd} directory holds the open file descriptors for your
+current process. You can't see them individually with:
+
+@example
+$ ls /dev/fd
+  -rw-rw-rw- 1 root root 0 Apr 10 11:47 /dev/fd
+@end example
+
+But you can see them with:
+
+@example
+$ ls -l /dev/fd
+crw--w---- 1 joshua tty 0, 0 Sep 19 17:58 /dev/fd/0
+@end example
 
 @node null
 @section null
 
+The null translator represents an endless stream of zeros.  When you
+read from @file{/dev/null}, you are sure to get lots of zeros.  When you
+write to @file{/dev/null}, no data is stored.
+
 @node devnode
 @section devnode
 
@@ -2989,7 +3041,7 @@ FIXME: finish
 which provides another way for other programs to open the device.
 
 Clients need to get the port to the @dfn{devnode} translator by calling
-@dfn{file_name_lookup}() and uses this port as a master device port to open
+@dfn{file_name_lookup}() and use this port as a master device port to open
 the device by calling @dfn{device_open}(). The device name used in
 @dfn{device_open}() is specified by @option{--name} of @dfn{devnode}.
 
@@ -3034,15 +3086,33 @@ filtered in various ways.
 
 @section storeinfo, storecat, storeread
 @section storeio
+@cindex storeio
 
-FIXME: finish
+@code{storeio} is a translator for devices and other stores.  It
+heavily uses @code{libstore}.
+
+You can @code{ungzip} files on the fly with @code{storeio}
+(@code{bunzip2} is available as well.):
+
+@example
+$ settrans -ca foo.txt /hurd/storeio -T gunzip foo.gz
+@end example
+
+@code{libdiskfs} uses storeio:
+
+@example
+@verbatim
+$ fsysopts / | awk '{ print $5 " " $6}'
+  --store-type=typed part:1:device:hd0
+@end verbatim
+@end example
 
 @node Store Library
 @section Store Library
 @scindex libstore
 @scindex store.h
 
-The store library (which is declared in @code{<hurd/store.h>})
+The store library (which is declared in @file{<hurd/store.h>})
 implements many different backends which support the store abstraction.
 Hurd programs use @code{libstore} so that new storage types can be
 implemented with minimum impact.
@@ -4645,6 +4715,23 @@ FIXME: finish
 
 @section symlink, firmlink
 @section hostmux, usermux
+@cindex hostmux, usermux
+
+@code{hostmux} multiplexes arbitrary host names, which makes accessing
+to many different hosts fast and easy.  That is a terse and abstract
+definition.  Let's explain with an example:
+
+@example
+$ settrans -fgap ~/ftp: /hurd/hostmux /hurd/ftpfs /
+@end example
+
+Now any programs can access the files from open ftp servers as easy
+as:
+
+@example
+ls ~/ftp:/ftp.gnu.org/
+@end example
+
 @section shadowfs
 
 
@@ -4701,7 +4788,8 @@ FIXME: finish
 FIXME: this subsystem is in flux @c Thomas, 26-03-1998
 
 @menu
-* pfinet::                     TCP/IP stack.
+* pfinet::                     Default TCP/IP stack.
+* lwip::                        Alternative TCP/IP stack.
 * pflocal::
 * libpipe::
 * Socket Interface::            Network communication I/O protocol.
@@ -4710,6 +4798,55 @@ FIXME: this subsystem is in flux @c Thomas, 26-03-1998
 
 @node pfinet
 @section pfinet
+@cindex pfinet
+
+Hurd developers ripped out an old Linux TCP/IP stack and called it
+pfinit.  It is the hurd's current default TCP/IP stack.  We hope to
+one day replace it with the @code{lwip} or @code{rump} TCP/IP stack.
+Lwip exists and works as a full replacment for pfinit.  The rump
+TCP/IP stack will most likely be a better option, but no one has
+started on it yet.
+
+@node lwip
+@section lwip
+@cindex lwip
+
+Developers created the @code{lwip} TCP/IP library with the design
+goals of minimalism and portability.  @code{lwip} is meant to be used
+on embedded devices.  While it is an alternative for the pfinet TCP/IP
+stack, a rump TCP/IP stack may be a better option.
+
+The lwip translator provides all of the following:
+
+@itemize @bullet
+@item
+Support for IPv4 and IPv6
+@item
+Support for TCP and UDP
+@item
+Support for multiple Ethernet devices
+@item
+Support for fsysopts and command-line parameters configuration
+@item
+Support to create an IP tunnel which may be used by an OpenVPN client
+@end itemize
+
+To configure lwip for internet connectivity, use the settrans command:
+
+@example
+settrans -fgap /servers/socket/2 /hurd/lwip \
+    -i /dev/eth0 -a 192.168.0.50 -g 192.168.0.1 -m 255.255.255.0
+@end example
+
+The argument @file{/server/socket/2} is the node that the translator
+is to be attached to. This is followed by the translator program to
+run and any arguments to give it.
+
+There, ``-i'', ``-a'', ``-g'' and ``-m'' are, quite obviously, the
+(Mach) device to use, the IP address, the gateway and netmask. You can
+discover these values via the @command{ifconfig} command (You need to
+run the @command{ifconfig} command on the host system and NOT in the
+qemu environment).
 
 @node pflocal
 @section pflocal
-- 
2.40.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]