summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glibc.mdwn5
-rw-r--r--glibc/signal.mdwn5
-rw-r--r--glibc/signal/signal_thread.mdwn7
-rw-r--r--hurd/running/qemu.mdwn5
4 files changed, 21 insertions, 1 deletions
diff --git a/glibc.mdwn b/glibc.mdwn
index 6c49508f..c7313c1c 100644
--- a/glibc.mdwn
+++ b/glibc.mdwn
@@ -28,6 +28,11 @@ Porting glibc to a specific architecture is non-trivial.
## [[Hurd-specific Port|hurd/glibc]]
+An important part of the [[Hurd]] actually resides in glibc: here, the POSIX
+interfaces are implemented on top of the [[Hurd IPC protocols|hurd/interface]].
+This is different to the Linux port, where most simple POSIX interfaces are in
+fact simply forwarded to/implemented as [[system_call]]s.
+
# Implementation Details
diff --git a/glibc/signal.mdwn b/glibc/signal.mdwn
index 84153cff..727247ac 100644
--- a/glibc/signal.mdwn
+++ b/glibc/signal.mdwn
@@ -10,8 +10,11 @@ is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
The [[*UNIX signalling mechanism*|unix/signal]] is implemented for the GNU Hurd
-by means of a separate *[[signal_thread]]* that is part of every
+by means of a separate *[[signal_thread]]* that is part of every user-space
[[process]]. This makes handling of signals a separate thread of control.
+[[GNU Mach|microkernel/mach/gnumach]] itself has no idea what a signal is and
+`kill` is not a [[system_call]] (as it typically is in a [[UNIX]] system): it's
+implemented in [[glibc]].
* [[SA_SIGINFO, SA_SIGACTION|open_issues/sa_siginfo_sa_sigaction]]
diff --git a/glibc/signal/signal_thread.mdwn b/glibc/signal/signal_thread.mdwn
index 28855dbd..5341b1ab 100644
--- a/glibc/signal/signal_thread.mdwn
+++ b/glibc/signal/signal_thread.mdwn
@@ -8,6 +8,13 @@ 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]]."]]"""]]
+For delivering a signal, Mach forwards an `msg_sig_post` message from the
+invoker of `kill` to the target process. The target process' [[signal_thread]]
+job is it to listen to such messages and to set up signal handler contexts in
+other threads.
+
+---
+
[[!tag open_issue_documentation]]
<braunr> bugs around signals are very tricky
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index 9f085d24..343707fa 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -100,6 +100,11 @@ If your machine supports hardware acceleration, you should really use the kvm va
to the command line, see below, if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or later. The kvm irq problems will be solved in kernel 2.6.39.
+/!\ Note that there are known performance issues with KVM on Linux 2.6.39
+kernels, compared to 2.6.32: [[!debbug 634149]]. We're preparing on a change
+on our side to work around this.
+
+
# Installing Debian/Hurd with QEMU using the Debian installer
Note: If you have hardware support, replace the qemu commands below with kvm, e.g. qemu-ing -> kvm-img.