|author||Thomas Schwinge <email@example.com>||2008-10-08 00:26:42 +0200|
|committer||Thomas Schwinge <firstname.lastname@example.org>||2008-10-08 00:26:42 +0200|
24 files changed, 77 insertions, 31 deletions
diff --git a/capability.mdwn b/capability.mdwn
index 8bb14f13..2d4d2ce8 100644
@@ -27,7 +27,7 @@ sent a string to identify the file to B, the identifier lacks a
than A intended. Be ensuring that [[designation]] and [[authorization]] are
always bound together, these problems are avoided.
-Unix file descriptors can be viewed as capabilities. Unix file
+[[Unix]] file descriptors can be viewed as capabilities. Unix file
descriptors do not survive reboot, that is, they are not
[[persistent|persistency]]. To work around this, [[ACL]]s are used to
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index 0dc5f152..c4b665b7 100644
@@ -145,7 +145,7 @@ virtualization using so-called logical partitions. (Similar to Linux-vserver,
While subhurd allow creating a complete second system instance, with an own set
-of Hurd servers and UNIX daemons and all, there are also situations where it is
+of Hurd servers and [[UNIX]] daemons and all, there are also situations where it is
desirable to have a smaller subenvironment, living withing the main system and
using most of its facilities -- similar to a chroot environment. A simple way
to create such a subenvironment with a single command would be very helpful.
@@ -279,7 +279,7 @@ ongoing.
## Fix File Locking
-Over the years, UNIX has aquired a host of different file locking mechanisms.
+Over the years, [[UNIX]] has aquired a host of different file locking mechanisms.
Some of them work on the Hurd, while others are buggy or only partially
implemented. This breaks many applications.
@@ -745,7 +745,7 @@ alltogether, the current Hurd implementation is based on
variant of the original CMU [[microkernel/Mach]].
Unfortunately, Mach was created about two decades ago, and is in turn based on
-even older BSD code. Parts of the BSD kernel -- file systems, UNIX mechanisms
+even older BSD code. Parts of the BSD kernel -- file systems, [[UNIX]] [[mechanism]]s
like processes and signals, etc. -- were ripped out (to be implemented in
[[userspace_servers|hurd/translator]] instead); while other mechanisms were
added to allow implementing stuff in userspace.
@@ -821,7 +821,7 @@ shell script that uses xmlfs to extract some interesting information from an
## Allow Using `unionfs` Early at Boot
-In UNIX systems, traditionally most software is installed in a common directory
+In [[UNIX]] systems, traditionally most software is installed in a common directory
hierachy, where files from various packages live beside each other, grouped by
function: user-invokable executables in `/bin`, system-wide configuration files
in `/etc`, architecture specific static files in `/lib`, variable data in
@@ -897,7 +897,7 @@ to do a detailed analysis of the problem.
## Lexical `..` Resolution
-For historical reasons, UNIX filesystems have a real (hard) `..` link from each
+For historical reasons, [[UNIX]] filesystems have a real (hard) `..` link from each
directory pointing to its parent. However, this is problematic, because the
meaning of "parent" really depends on context. If you have a symlink for
example, you can reach a certain node in the filesystem by a different path. If
@@ -926,7 +926,7 @@ suggestions welcome... :-) )
## Secure `chroot` implementation
-As the Hurd attempts to be (almost) fully UNIX-compatible, it also implements a
+As the Hurd attempts to be (almost) fully [[UNIX]]-compatible, it also implements a
`chroot()` system call. However, the current implementation is not really
good, as it allows easily escaping the `chroot`, for example by use of
diff --git a/destructive_interference.mdwn b/destructive_interference.mdwn
index c41e5a36..1cda81a6 100644
@@ -19,7 +19,7 @@ the Solitaire program is instantiated and given all of the user's
authority. The program may delete all of the users files after
publishing credit card and other sensitive information on the Internet.
This type of interference is undesirable, however, generally practically
-unavoidable due to the way programs work on Windows (and Unix, for that
+unavoidable due to the way programs work on Windows (and [[Unix]], for that
The problem is that the callee has induced negative consequence for caller
diff --git a/documentation.mdwn b/documentation.mdwn
index 4ac335be..45bb5ffc 100644
@@ -25,7 +25,7 @@ is included in the section entitled
applied, comparisions to other systems.
-# Unix Programming
+# [[Unix]] Programming
* *The C Programming Language* by Brian W. Kernighan and Dennis M. Ritchie,
diff --git a/extensibility.mdwn b/extensibility.mdwn
index 1d6adc51..4ef70986 100644
@@ -10,7 +10,7 @@ is included in the section entitled
An extensible system is one that enables extensibility. Enabling extensibility
means providing non-privileged mechanisms to extend existing objects and to
-introduce new objects. UNIX is generally not an extensible system as it does
+introduce new objects. [[UNIX]] is generally not an extensible system as it does
not generally facilitate the hooking of system calls. For instance, there is
no way to hook into the virtual file system. This has motivated the introduction
of separate, parallel interfaces by both the GNOME and KDE projects to provide
diff --git a/hurd/faq/gramatically_speaking.mdwn b/hurd/faq/gramatically_speaking.mdwn
index f6073376..7aa3edac 100644
@@ -11,7 +11,7 @@ is included in the section entitled
[[meta title="Grammatically speaking, what is the Hurd?"]]
-*Hurd*, as an acronym, stands for *Hird of Unix-Replacing Daemons*. *Hird*, in
+*Hurd*, as an acronym, stands for *Hird of [[Unix]]-Replacing Daemons*. *Hird*, in
turn, stands for *Hurd of Interfaces Representing Depth*.
We treat *Hurd* as a title rather than as a proper name: it requires an
diff --git a/hurd/faq/slash_usr_symlink.mdwn b/hurd/faq/slash_usr_symlink.mdwn
index d78913fb..6fa6c58d 100644
@@ -11,7 +11,7 @@ is included in the section entitled
[[meta title="Why is `/usr' a symbolic link to `.'?"]]
-The distinction between `/` and `/usr` has historical reasons. Back when Unix
+The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]]
systems were booted from two tapes, a small root tape and a big user tape.
Today, we like to use different partitions for these two spaces. The Hurd
throws this historical garbage away. We think that we have found a more
diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn
index bc33769a..6ed031ed 100644
@@ -16,7 +16,7 @@ where `N` is the numberic value fo the `PF_*` symbol. Right now
User programs open those files, and use the `socket_create` [[RPC]] to make a
new socket. With that socket, they can use the other `socket_*` RPCs and also
-the `io_*` RPCs. The `socket_*` RPCs are essentially clones of the Unix
+the `io_*` RPCs. The `socket_*` RPCs are essentially clones of the [[Unix]]
syscalls in question.
The only exception is `sockaddrs`, which are implemented as [[ports|libports]]
diff --git a/hurd/ng/part2systemstructure.mdwn b/hurd/ng/part2systemstructure.mdwn
index 4ce8026f..0f94ff2a 100644
@@ -38,7 +38,12 @@ It is clear from this description that the child's existance is completely deter
## <a name="Canonical_Process_Destruction"> Canonical Process Destruction </a>
-Process destruction can be done either cooperatively, or forcibly. The difference corresponds approximately to the difference between SIGTERM and SIGKILL in Unix. To destroy a process cooperatively, a request message is sent to a special capability implemented by the child process. The child can then begin to tear down the program, and at some time send a request back to the parent process to ask for forced process destruction.
+Process destruction can be done either cooperatively, or forcibly. The
+difference corresponds approximately to the difference between SIGTERM and
+SIGKILL in [[Unix]]. To destroy a process cooperatively, a request message is
+sent to a special capability implemented by the child process. The child can
+then begin to tear down the program, and at some time send a request back to
+the parent process to ask for forced process destruction.
Forced process destruction can be done by the parent process without any cooperation by the child process. The parent process simply destroys the primary container of the child (this means that the parent process should retain the primary container capability).
@@ -84,7 +89,13 @@ I will now describe some common applications that need to be supported, and how
## <a name="System_Services"> System Services </a>
-Unix-style suid applications have been proposed as one application for alternative process construction mechanisms. However, suid applications in Unix are, from the perspective of the parent, not confined, only isolated. Thus, they are readily replaced by a system service that is created by the system software, and that runs as a sibling to any user process. Only the ability to invoke the system service needs to be given to the user, not the ability to instantiate it.
+[[Unix]]-style suid applications have been proposed as one application for
+alternative process construction mechanisms. However, suid applications in
+Unix are, from the perspective of the parent, not confined, only isolated.
+Thus, they are readily replaced by a system service that is created by the
+system software, and that runs as a sibling to any user process. Only the
+ability to invoke the system service needs to be given to the user, not the
+ability to instantiate it.
In fact, no gain can derived from letting the user instantiate system services. In Unix, system services run on durable resources, which the user can not revoke. Thus, the system service needs to acquire its resources from a container that is not derived from the user's primary container.
diff --git a/hurd/ng/usecaseprivatekeys.mdwn b/hurd/ng/usecaseprivatekeys.mdwn
index 612a8f25..3cb65af2 100644
@@ -1,6 +1,10 @@
_Private Keys_ as used by SSH servers, clients and generally by any cryptographic software need to be stored and manipulated securely. These may get replaced with smartcards soon, but in the mean time it appears to be an interesting use case.
-All Unix systems that I am aware of do not allow secrets to be protected in a manner that I would feel is appropiate. A users compromised web browser could either read your private key file or talk to the very popular ssh-agent program and get your secrets out (not sure how popular distributions are configured, but it can be done).
+All [[Unix]] systems that I am aware of do not allow secrets to be protected in
+a manner that I would feel is appropiate. A users compromised web browser
+could either read your private key file or talk to the very popular ssh-agent
+program and get your secrets out (not sure how popular distributions are
+configured, but it can be done).
The requirements so far are:
diff --git a/hurd/ng/usecaseuserfilesystem.mdwn b/hurd/ng/usecaseuserfilesystem.mdwn
index 6dce5670..4e4fdf35 100644
@@ -3,7 +3,7 @@
These appear as _translators_ in the current Hurd and something similar needs to appear in the next hurd.
* The user should be able to dynamically add and remove translators
-* For some reason it seems appropiate to have seperate namespaces (VFS's) for each user (this is quite a departure from Unix. [[SamMason]])
+* For some reason it seems appropiate to have seperate namespaces (VFS's) for each user (this is quite a departure from [[Unix]]. [[SamMason]])
* translators can be used to expose the structure of an archive file
* translators can be provide access to remote file systems
diff --git a/hurd/running/gnu.mdwn b/hurd/running/gnu.mdwn
index 322597ec..2ae2f2ca 100644
@@ -2,7 +2,12 @@
# <a name="The_GNU_Operating_System"> </a> The GNU Operating System
-The GNU Operating System, or GNU System as it is more commonly known, will be a complete Unix-like operating system composed entirely of [free software](http://www.gnu.org/philosophy/free-sw.html). The creation of the GNU System is one of the goals of the [GNU Project](http://www.gnu.org/), which was [launched in 1983](http://www.gnu.org/gnu/initial-announcement.html) by [Richard Stallman](http://www.stallman.org/).
+The GNU Operating System, or GNU System as it is more commonly known, will be a
+complete [[Unix]]-like operating system composed entirely of [free
+software](http://www.gnu.org/philosophy/free-sw.html). The creation of the GNU
+System is one of the goals of the [GNU Project](http://www.gnu.org/), which was
+[launched in 1983](http://www.gnu.org/gnu/initial-announcement.html) by
diff --git a/hurd/running/gnu/gnu.mdwn b/hurd/running/gnu/gnu.mdwn
index 22bb5161..2a3629d7 100644
@@ -2,7 +2,12 @@
## <a name="GNU_FSF_amp_RMS"> </a> GNU, FSF & RMS
-GNU stands for GNU's Not Unix. It is a project announced in 1983 by [[RichardStallman]] (RMS). The Free Software Foundation ([FSF](http://www.fsf.org/fsf/fsf.html)) was founded in 1985 to act as a parent organization for GNU and many other projects. GNU and some non-GNU projects are now hosted on the [Savannah](http://savannah.gnu.org) platform similar to SourceForge.net.
+GNU stands for GNU's Not [[Unix]]. It is a project announced in 1983 by
+[[RichardStallman]] (RMS). The Free Software Foundation
+([FSF](http://www.fsf.org/fsf/fsf.html)) was founded in 1985 to act as a parent
+organization for GNU and many other projects. GNU and some non-GNU projects
+are now hosted on the [Savannah](http://savannah.gnu.org) platform similar to
diff --git a/hurd/running/gnu/names.mdwn b/hurd/running/gnu/names.mdwn
index d470a632..fcab6a11 100644
@@ -1,4 +1,4 @@
-The GNU stands for GNU's Not Unix. It is a project as described in [[GNU]].
+The GNU stands for GNU's Not [[Unix]]. It is a project as described in [[GNU]].
What can be confusing is the usage. GNU can stand for:
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index 3a9784f7..1cf149bd 100644
@@ -1,4 +1,4 @@
-This page discusses things for Unix systems, there is a separate page for
+This page discusses things for [[Unix]] systems, there is a separate page for
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
index 9cdd8a31..b9952931 100644
@@ -26,7 +26,7 @@ that to access the indiviudal resources they use.
This is primarily the [[backing_store]] and the node
they attach to. Typically, a translator can
only be attached to a node by the node's owner.
-On Unix this is not possible because file systems
+On [[Unix]] this is not possible because file systems
and the virtual file system are implemented in the
kernel and thus have absolute access to the machine.
As the protocols do not require any special privilege
@@ -10,7 +10,7 @@ is included in the section entitled
IPC stands for interprocess communication.
-On Unix, interprocess communication can be achieved using pipes.
+On [[Unix]], interprocess communication can be achieved using pipes.
This is inefficient for large amounts of data as the data must be
copied. This is generally not a problem as most services are
provided by the Unix kernel and Unix is not designed to be
diff --git a/mechanism.mdwn b/mechanism.mdwn
index 6a96c656..c0a6b02c 100644
@@ -20,7 +20,7 @@ As mechanisms determine the type of result, they necessarily
impose some [[policy]] (rules). Mechanisms that are referred
to as policy-free are those that minimally impose policy.
-A process can be used to encapsulate a program instance. On Unix,
+A process can be used to encapsulate a program instance. On [[Unix]],
a process is associated with a UID. This UID, in part, determines
what the process is authorized to do. On a [[microkernel]],
the policy that controls what resources a process may access
diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn
index 7ed1ca57..608b6581 100644
@@ -28,7 +28,7 @@ and the offset at which to install it. (The first time
a task maps an object, Mach sends an initialization message
to the server including a control capability, which it uses
to supply pages to the kernel.) This is essentially
-the same as mapping a file into an address space on Unix
+the same as mapping a file into an address space on [[Unix]]
When a task faults, Mach checks to see if there is a memory
diff --git a/microkernel/mach/gnumach/projects.mdwn b/microkernel/mach/gnumach/projects.mdwn
index 35b5c2ef..10ba0fe2 100644
@@ -1,5 +1,5 @@
[[meta copyright="Copyright © 2005, 2006, 2007, 2008
- Free Software Foundation, Inc."]]
+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
@@ -99,7 +99,7 @@ so that no duplicate efforts end up.
- * Make it run as a UNIX/Linux executable.
+ * Make it run as a [[UNIX]]/Linux executable.
diff --git a/microkernel/mach/history.mdwn b/microkernel/mach/history.mdwn
index a27595c0..a8951737 100644
@@ -8,7 +8,11 @@ Mach has quite a history. Everything actually started at the University of Roche
One of the engineers behind the project was Richard Rashid. In 1979 he moved his socks to Carnegie Mellon University to continue his research on message passing operating systems. The result emerged in 1981 and was called Accent.
-Accent kept running at CMU until 1984 but was by then being run over by UNIX. Rashid then decided to use an early embrace strategy and started designing the third generation OS project called Mach. By making Mach compatible with UNIX, Mach was supposed to gain a lot of available UNIX software.
+Accent kept running at CMU until 1984 but was by then being run over by
+[[UNIX]]. Rashid then decided to use an early embrace strategy and started
+designing the third generation OS project called Mach. By making Mach
+compatible with UNIX, Mach was supposed to gain a lot of available UNIX
Mach was a vast improvement over Accent. It incorporated parts commonly used today, such as: threads, better IPC, multiprocessor support and an advanced VM system.
diff --git a/persistency.mdwn b/persistency.mdwn
index 5bd4f524..17176708 100644
@@ -9,8 +9,8 @@ is included in the section entitled
A persistent object is an object that survives reboot.
-On Unix, files and directories are persistent but
-processes and file descriptors are not. EROS is
+On [[Unix]], files and directories are persistent but
+processes and file descriptors are not. [[microkernel/EROS]] is
an example of an orthogonally persistent system:
processes and capabilities also survive reboot. To a
process, it generally only looks as if it had not been
@@ -18,7 +18,7 @@ user.
When we say that a program trusts another, we mean that [[correctness]] of the
former depends on the cooperation of the latter. For instance, when a user runs
ssh, the user's intention is that all communication is encrypted. In this case,
-the user trusts that the ssh binary respects this intent. In Unix, a program's
+the user trusts that the ssh binary respects this intent. In [[Unix]], a program's
[[tcb]] consists not only of the kernel (and all the drivers,
file systems and protocol stacks that it contains) but every program running
under the same UID; it is impossible to protect against
diff --git a/unix.mdwn b/unix.mdwn
new file mode 100644
@@ -0,0 +1,17 @@
+[[meta copyright="Copyright © 2008 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
+ * Wikipedia page about [[wikipedia UNIX]].
+ * [*Standardizing
+ UNIX*](http://www.informit.com/articles/printerfriendly.aspx?p=691503), an
+ article by David Chisnall.