summaryrefslogtreecommitdiff
path: root/glibc
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-11-30 10:39:28 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-11-30 10:39:28 +0100
commitcd782d77c1e90976cb6dacf6ba78ba762f145a50 (patch)
tree3b6ed292f3cc607dd43dfcc82044945f758d85f5 /glibc
parentb4a020824706ddfd9c1c38fb08d6935fa8e8cde3 (diff)
Been reading another LWN issue...
Diffstat (limited to 'glibc')
-rw-r--r--glibc/fallocate.mdwn17
-rw-r--r--glibc/fork.mdwn18
-rw-r--r--glibc/signals.mdwn32
3 files changed, 57 insertions, 10 deletions
diff --git a/glibc/fallocate.mdwn b/glibc/fallocate.mdwn
new file mode 100644
index 00000000..3aecf16b
--- /dev/null
+++ b/glibc/fallocate.mdwn
@@ -0,0 +1,17 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+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]]."]]"""]]
+
+Not yet implemented for the GNU Hurd in [[glibc]].
+
+
+# External
+
+ * [*Punching holes in files*](http://lwn.net/Articles/415889/), Jonathan
+ Corbet, 2010-11-17.
diff --git a/glibc/fork.mdwn b/glibc/fork.mdwn
index e8556a91..378fe835 100644
--- a/glibc/fork.mdwn
+++ b/glibc/fork.mdwn
@@ -14,10 +14,10 @@ Our implementation in [[glibc]] is and needs to be rather bulky.
For example, it has to duplicate all port rights for the new [[Mach
task|microkernel/mach/task]]. The address space can simply be duplicated by
-standard means of the [[microkernel/Mach]], but as [[file descriptor]]s (for
-example) are a concept that is implemented inside [[glibc]] (based on [[Mach
-port|microkernel/mach/port]]s), these have to be duplicated from userspace,
-which requires a small number of [[RPC]] for each of them.
+standard means of the [[microkernel/Mach]], but as [[unix/file_descriptor]]s
+(for example) are a concept that is implemented inside [[glibc]] (based on
+[[Mach port|microkernel/mach/port]]s), these have to be duplicated from
+userspace, which requires a small number of [[RPC]] for each of them.
In sum, [[this affects performance|open_issues/performance/fork]] when new
processes are continuously being spawned from the shell, for example.
@@ -43,7 +43,7 @@ they have patches for software packages, to avoid using `fork` followed by
([[!taglink open_issue_glibc]]).
* Include de-duplicate information from elsewhere: [[hurd-paper]],
- [[hurd-talk]] [[hurd/ng/trivialconfinementvsconstructorvsfork]],
+ [[hurd-talk]], [[hurd/ng/trivialconfinementvsconstructorvsfork]],
[[open_issues/resource_management_problems/zalloc_panics]] ([[!taglink
open_issue_glibc open_issue_documentation]]).
@@ -54,13 +54,11 @@ they have patches for software packages, to avoid using `fork` followed by
## Related
- * [[secure file descriptor handling]].
+ * [[open_issues/secure_file_descriptor_handling]].
# External
- * [*How fork(2) ought to be*](http://www.greenend.org.uk/rjk/fork.html) by
- Richard Kettlewell.
+ * {{$unix#djb_self-pipe}}.
- * [*The self-pipe trick*](http://cr.yp.to/docs/selfpipe.html) by
- D. J. Bernstein.
+ * {{$unix#rjk_fork}}.
diff --git a/glibc/signals.mdwn b/glibc/signals.mdwn
new file mode 100644
index 00000000..40fdc0e1
--- /dev/null
+++ b/glibc/signals.mdwn
@@ -0,0 +1,32 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+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]]."]]"""]]
+
+*[[UNIX]] signals* are a means to asynchronously invoke a specific function
+(*signal handler*). This may impact on [[system call]]s that are executing at
+the same time in that they may be completely aborted, return incomplete
+results, scheduled for restarting, or cause signal delivery to be blocked upon
+the system call's completion.
+
+An explanation can be found in the relevant standards, an overview, including
+UNIX signals' deficiencies is given in {{$unix#2010_brown_ghosts_3}}, for
+example.
+
+The UNIX signalling mechanism is implemented for the GNU Hurd by means of a
+separate signal-handling thread that is part of every process. This makes
+handling of signals a separate thread of control.
+
+ * [[SA_SIGINFO, SA_SIGACTION|open_issues/sa_siginfo_sa_sigaction]]
+
+
+# External
+
+ * {{$unix#djb_self-pipe}}.
+
+ * {{$unix#rjk_fork}}.