[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
hurd-l4/doc hurd-on-l4.tex
From: |
Marcus Brinkmann |
Subject: |
hurd-l4/doc hurd-on-l4.tex |
Date: |
Sun, 31 Aug 2003 09:36:30 -0400 |
CVSROOT: /cvsroot/hurd
Module name: hurd-l4
Branch:
Changes by: Marcus Brinkmann <address@hidden> 03/08/31 09:36:30
Modified files:
doc : hurd-on-l4.tex
Log message:
Adjust section layout.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd-l4/doc/hurd-on-l4.tex.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: hurd-l4/doc/hurd-on-l4.tex
diff -u hurd-l4/doc/hurd-on-l4.tex:1.6 hurd-l4/doc/hurd-on-l4.tex:1.7
--- hurd-l4/doc/hurd-on-l4.tex:1.6 Sat Aug 30 20:37:03 2003
+++ hurd-l4/doc/hurd-on-l4.tex Sun Aug 31 09:36:29 2003
@@ -1729,7 +1729,14 @@
\end{comment}
-\section{Process Management}
+\section{The POSIX personality}
+
+The Hurd offers a POSIX API to the user by default. This is
+implemented in the GNU C library which uses the services provided by
+the Hurd servers. Several system servers support the C library.
+
+
+\subsection{Process Management}
\label{proc}
The \texttt{proc} server implements Unix process semantics in the Hurd
@@ -1748,7 +1755,7 @@
\end{comment}
-\subsection{Signals}
+\subsubsection{Signals}
Each process can register the thread ID of a signal thread with the
\texttt{proc} server. The proc server will give the signal thread ID
@@ -1807,8 +1814,13 @@
interface (which allows you to manipulate the environment variables
and \texttt{auth} capability of a running task, etc).
-
-\section{Exec}
+
+\subsubsection{The \texttt{fork()} function}
+
+To be written.
+
+
+\subsubsection{The \texttt{exec()} function}
The exec() operation will be done locally in a task. Traditionally,
exec() overlays the same task with a new process image, because
@@ -1892,7 +1904,7 @@
idea. The details will depend a lot on the actual implementation.
-\section{Unix Domain Sockets}
+\subsection{Unix Domain Sockets}
In the Hurd on Mach, there was a global pflocal server that provided
unix domain sockets and pipes to all users. This will not work very
@@ -1928,20 +1940,29 @@
shared pflocal server, one per user.
-\section{Pipes}
+\subsection{Pipes}
-Pipes can be either implemented using Unix Domain Sockets, or maybe
-even using shared memory for extra performance.
+Pipes are implemented using \texttt{socketpair()}, that means as
+unnamed pair of Unix Domain Sockets. The \texttt{pflocal} server will
+support this by implementing pipe semantics on the socketpair if
+requested.
\begin{comment}
- Either a shared lock has to be used (implemented inside the physical
- memory server), or the shared memory protocol must be able to deal
- with multiple concurrent readers and writers.
+ It was considered to use shared memory for the pipe implementation.
+ But we are not aware of a lock-free protocol using shared memory
+ with multiple readers and multiple writers. It might be possible,
+ but it is not obvious if that would be faster: Pipes are normally
+ used with \texttt{read()} and \texttt{write()}, so the data has to
+ be copied from and to the supplied buffer. This can be done
+ efficiently in L4 even across address spaces using string items. In
+ the implementation using sockets, the \texttt{pflocal} server
+ handles concurrent read and write accesses with mutual exclusion.
\end{comment}
-\section{Filesystem Translators}
+\subsection{Filesystems}
+\subsubsection{Directory lookup across filesystems}
\label{xfslookup}
The Hurd has the ability to let users mount filesystems and other
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/28
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/29
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/29
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/30
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/30
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/30
- hurd-l4/doc hurd-on-l4.tex,
Marcus Brinkmann <=
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31
- hurd-l4/doc hurd-on-l4.tex, Marcus Brinkmann, 2003/08/31