summaryrefslogtreecommitdiff
path: root/unix
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-12-13 19:56:25 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-12-13 20:17:11 +0100
commitcfccdc1bdbee7fb25ef0aa9639a3ffec926bf690 (patch)
tree018ecca2a0ce311c735487e485fdb92f614c781e /unix
parent8fb130c6315264ff44d86c1d06b8b2d83035bdbe (diff)
Shuffle / create / enhance some UNIX / glibc pages.
Diffstat (limited to 'unix')
-rw-r--r--unix/file_descriptor.mdwn4
-rw-r--r--unix/process.mdwn20
-rw-r--r--unix/signal.mdwn34
3 files changed, 58 insertions, 0 deletions
diff --git a/unix/file_descriptor.mdwn b/unix/file_descriptor.mdwn
index 16e03fdf..6f8533c5 100644
--- a/unix/file_descriptor.mdwn
+++ b/unix/file_descriptor.mdwn
@@ -11,3 +11,7 @@ License|/fdl]]."]]"""]]
A *file descriptor* is a [[concept]] of [[UNIX]], and represents a
non-[[persistent|persistency]] handle to an object (a file, for example). With
respect to specific aspects, it is comparable to a [[capability]].
+
+In a GNU Hurd system, the concept of file descriptors is based on object
+handles (through [[Mach ports|microkernel/mach/port]]), and is [[implemented in
+glibc|glibc/file_descriptor]].
diff --git a/unix/process.mdwn b/unix/process.mdwn
new file mode 100644
index 00000000..21fbfc69
--- /dev/null
+++ b/unix/process.mdwn
@@ -0,0 +1,20 @@
+[[!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]]."]]"""]]
+
+A *UNIX process* is TODO.
+
+Generally, especially in [[microkernel]]-based systems, the [[kernel]]'s idea
+of a task is not as encompassing as a UNIX process, and will use additional
+effort to enhance the kernel's primitive to a full-fledged UNIX model.
+
+A [[Mach task|microkernel/mach/task]] implements a part of a UNIX process.
+
+In the GNU/Hurd, processes are based on [[Mach task|microkernel/mach/task]]s,
+but are [[enhanced by the glibc|glibc/process]].
diff --git a/unix/signal.mdwn b/unix/signal.mdwn
new file mode 100644
index 00000000..0d038a45
--- /dev/null
+++ b/unix/signal.mdwn
@@ -0,0 +1,34 @@
+[[!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*) in a [[process]]. It's a rather limited for of doing
+[[IPC]].
+
+Signalling 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.
+
+In a GNU/Hurd system, the signalling system is [[implemented in
+glibc|glibc/signal]].
+
+
+# Further Reading
+
+ * [[!wikipedia Signal_(computing)]]
+
+ * {{$unix#djb_self-pipe}}.
+
+ * {{$unix#rjk_fork}}.