summaryrefslogtreecommitdiff
path: root/unix
diff options
context:
space:
mode:
Diffstat (limited to 'unix')
-rw-r--r--unix/file_descriptor.mdwn18
-rw-r--r--unix/process.mdwn20
-rw-r--r--unix/signal.mdwn34
3 files changed, 72 insertions, 0 deletions
diff --git a/unix/file_descriptor.mdwn b/unix/file_descriptor.mdwn
new file mode 100644
index 00000000..b40db67f
--- /dev/null
+++ b/unix/file_descriptor.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2010, 2011 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 *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]].
+This is detailed in {{$capability#wikipedia_capability-based_security}}.
+
+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..084f7f2a
--- /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 form 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}}.