From 33b91f458ed0f728933f2d5aa5ec2ae1a86a9d4d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 20 Jul 2011 13:35:48 +0200 Subject: Misc bits from emails by Samuel and Jérémie. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glibc.mdwn | 5 +++++ glibc/signal.mdwn | 5 ++++- glibc/signal/signal_thread.mdwn | 7 +++++++ hurd/running/qemu.mdwn | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) 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]] 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. -- cgit v1.2.3