diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2011-07-20 14:04:59 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2011-07-20 14:04:59 +0200 |
commit | 3254cc1f93c366aba162e38fac622b83058ad471 (patch) | |
tree | 702173d8eb18cdf9889e924570163bc49b472872 | |
parent | 58e262611fe8cae64db2e7989280d4e23e9d806d (diff) | |
parent | 33b91f458ed0f728933f2d5aa5ec2ae1a86a9d4d (diff) |
Merge remote-tracking branch 'IKR/master'
-rw-r--r-- | glibc.mdwn | 5 | ||||
-rw-r--r-- | glibc/signal.mdwn | 5 | ||||
-rw-r--r-- | glibc/signal/signal_thread.mdwn | 7 | ||||
-rw-r--r-- | hurd/running/qemu.mdwn | 5 |
4 files changed, 21 insertions, 1 deletions
@@ -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. |