diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2010-12-13 19:56:25 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2010-12-13 20:17:11 +0100 |
commit | cfccdc1bdbee7fb25ef0aa9639a3ffec926bf690 (patch) | |
tree | 018ecca2a0ce311c735487e485fdb92f614c781e /unix | |
parent | 8fb130c6315264ff44d86c1d06b8b2d83035bdbe (diff) |
Shuffle / create / enhance some UNIX / glibc pages.
Diffstat (limited to 'unix')
-rw-r--r-- | unix/file_descriptor.mdwn | 4 | ||||
-rw-r--r-- | unix/process.mdwn | 20 | ||||
-rw-r--r-- | unix/signal.mdwn | 34 |
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}}. |