diff options
Diffstat (limited to 'unix')
-rw-r--r-- | unix/file_descriptor.mdwn | 18 | ||||
-rw-r--r-- | unix/process.mdwn | 20 | ||||
-rw-r--r-- | unix/signal.mdwn | 34 |
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}}. |