/[hurd]/hurd-l4/doc/hurd-on-l4.tex
ViewVC logotype

Diff of /hurd-l4/doc/hurd-on-l4.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by marcus, Sun Aug 31 00:37:03 2003 UTC revision 1.7 by marcus, Sun Aug 31 13:36:29 2003 UTC
# Line 1729  user and group IDs from the \texttt{auth Line 1729  user and group IDs from the \texttt{auth
1729  \end{comment}  \end{comment}
1730    
1731    
1732  \section{Process Management}  \section{The POSIX personality}
1733    
1734    The Hurd offers a POSIX API to the user by default.  This is
1735    implemented in the GNU C library which uses the services provided by
1736    the Hurd servers.  Several system servers support the C library.
1737    
1738    
1739    \subsection{Process Management}
1740  \label{proc}  \label{proc}
1741    
1742  The \texttt{proc} server implements Unix process semantics in the Hurd  The \texttt{proc} server implements Unix process semantics in the Hurd
# Line 1748  and the task control caps. Line 1755  and the task control caps.
1755  \end{comment}  \end{comment}
1756    
1757    
1758  \subsection{Signals}  \subsubsection{Signals}
1759    
1760  Each process can register the thread ID of a signal thread with the  Each process can register the thread ID of a signal thread with the
1761  \texttt{proc} server.  The proc server will give the signal thread ID  \texttt{proc} server.  The proc server will give the signal thread ID
# Line 1807  The signal capability is also used for o Line 1814  The signal capability is also used for o
1814  interface (which allows you to manipulate the environment variables  interface (which allows you to manipulate the environment variables
1815  and \texttt{auth} capability of a running task, etc).  and \texttt{auth} capability of a running task, etc).
1816    
1817      
1818  \section{Exec}  \subsubsection{The \texttt{fork()} function}
1819    
1820    To be written.
1821    
1822    
1823    \subsubsection{The \texttt{exec()} function}
1824    
1825  The exec() operation will be done locally in a task.  Traditionally,  The exec() operation will be done locally in a task.  Traditionally,
1826  exec() overlays the same task with a new process image, because  exec() overlays the same task with a new process image, because
# Line 1892  This is a coarse and incomplete descript Line 1904  This is a coarse and incomplete descript
1904  idea.  The details will depend a lot on the actual implementation.  idea.  The details will depend a lot on the actual implementation.
1905    
1906    
1907  \section{Unix Domain Sockets}  \subsection{Unix Domain Sockets}
1908    
1909  In the Hurd on Mach, there was a global pflocal server that provided  In the Hurd on Mach, there was a global pflocal server that provided
1910  unix domain sockets and pipes to all users.  This will not work very  unix domain sockets and pipes to all users.  This will not work very
# Line 1928  for each socketpair.  However, performan Line 1940  for each socketpair.  However, performan
1940  shared pflocal server, one per user.  shared pflocal server, one per user.
1941    
1942    
1943  \section{Pipes}  \subsection{Pipes}
1944    
1945  Pipes can be either implemented using Unix Domain Sockets, or maybe  Pipes are implemented using \texttt{socketpair()}, that means as
1946  even using shared memory for extra performance.  unnamed pair of Unix Domain Sockets.  The \texttt{pflocal} server will
1947    support this by implementing pipe semantics on the socketpair if
1948    requested.
1949    
1950  \begin{comment}  \begin{comment}
1951    Either a shared lock has to be used (implemented inside the physical    It was considered to use shared memory for the pipe implementation.
1952    memory server), or the shared memory protocol must be able to deal    But we are not aware of a lock-free protocol using shared memory
1953    with multiple concurrent readers and writers.    with multiple readers and multiple writers.  It might be possible,
1954      but it is not obvious if that would be faster: Pipes are normally
1955      used with \texttt{read()} and \texttt{write()}, so the data has to
1956      be copied from and to the supplied buffer.  This can be done
1957      efficiently in L4 even across address spaces using string items.  In
1958      the implementation using sockets, the \texttt{pflocal} server
1959      handles concurrent read and write accesses with mutual exclusion.
1960  \end{comment}  \end{comment}
1961    
1962    
1963  \section{Filesystem Translators}  \subsection{Filesystems}
1964    
1965    \subsubsection{Directory lookup across filesystems}
1966  \label{xfslookup}  \label{xfslookup}
1967    
1968  The Hurd has the ability to let users mount filesystems and other  The Hurd has the ability to let users mount filesystems and other

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26