summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-11-14 21:11:45 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-11-14 21:11:45 +0100
commit512f1951ca41ef1a648a3b55d2ae44da059f5415 (patch)
tree10da22a358c0bc3fb59ec56c1073389e2f6f3b88
parent1aaf9868f2b9c50c3c60cc9040e0b5c94dbe2b87 (diff)
hurd/advantages: Rewritten some bits, and extended.
-rw-r--r--hurd/advantages.mdwn99
1 files changed, 49 insertions, 50 deletions
diff --git a/hurd/advantages.mdwn b/hurd/advantages.mdwn
index ba3a134b..254e33f6 100644
--- a/hurd/advantages.mdwn
+++ b/hurd/advantages.mdwn
@@ -9,60 +9,59 @@ 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]]."]]"""]]
-The Hurd is not the most advanced kernel known to the planet (yet),
-but it does have a number of enticing features:
+The GNU Hurd has a number of enticing features:
+
+It's free software, so anybody can use, modify, and redistribute it under the
+terms of the [[GNU General Public License (GPL)|GPL]].
+
+It's compatible as it provides a familiar programming and user environment.
+For all intents and purposes, the Hurd provides the same facilities as a modern
+Unix-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose development
+closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and
+X/Open.
+
+Unlike other popular kernel software, the Hurd has an object-oriented structure
+that allows it to evolve without compromising its design. This structure will
+help the Hurd undergo major redesign and modifications without having to be
+entirely rewritten.
+
+The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux,
+for example) are also modular in that they allow loading (and unloading) some
+components as kernel modules, but the Hurd goes one step further in that most
+of the components that constitute the whole kernel are running as separate
+user-space processes and are thus using different address spaces that are
+isolated from each other. This is a multi-server design based on a
+[[microkernel]]. It is not possible that a faulty memory dereference inside
+the [[TCP/IP stack|translator/pfinet]] can bring down the whole kernel, and
+thus the whole system, which is a real problem in a monolothic Unix kernel
+architecture.
- * **it's free software**
-
- Anybody can use, modify, and redistribute it under the terms of the
- [[GNU_General_Public_License_(GPL)|GPL]]
-
- * **it's compatible**
-
- The Hurd provides a familiar programming and user environment. For all
- intents and purposes, the Hurd is a modern Unix-like kernel. The Hurd uses
- the [[GNU_C_Library|glibc]], whose development closely tracks standards
- such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and X/Open.
-
- * **it's built to survive**
-
- Unlike other popular kernel software, the Hurd has an object-oriented
- structure that allows it to evolve without compromising its design. This
- structure will help the Hurd undergo major redesign and modifications
- without having to be entirely rewritten.
-
- * **it's scalable**
-
- The Hurd implementation is aggressively multithreaded so that it runs
- efficiently on both single processors and symmetric multiprocessors. The
- Hurd interfaces are designed to allow transparent network clusters
- (*collectives*), although this feature has not yet been implemented.
-
- * **it's extensible**
-
- The Hurd is an attractive platform for learning how to become a kernel
- hacker or for implementing new ideas in kernel technology. Every part of
- the system is designed to be modified and extended.
+One advantage of the Hurd's separation of kernel-like functionality into
+separate components ([[servers|translator]]) is that these can be constructed
+using different programming lanugages -- a feature that is not easily possible
+in a monolithic kernel. Essentially, only an interface from the programming
+environment to the [[RPC]] mechanism is required.
- * **it's stable**
+<!-- This is a bit questionable...
- It is possible to develop and test new Hurd kernel components without
- rebooting the machine (not even accidentally). Running your own kernel
- components doesn't interfere with other users, and so no special system
- privileges are required. The mechanism for kernel extensions is secure by
- design: it is impossible to impose your changes upon other users unless
- they authorize them or you are the system administrator.
+It's scalable. The Hurd implementation is aggressively multithreaded so that
+it runs efficiently on both single processors and symmetric multiprocessors.
+The Hurd interfaces are designed to allow transparent network clusters
+(*collectives*), although this feature has not yet been implemented.
- * **it exists**
+-->
- The Hurd is real software that works Right Now. It is not a research
- project or a proposal. You don't have to wait at all before you can start
- using and developing it.
+The Hurd is an attractive platform for learning how to become a kernel hacker
+or for implementing new ideas in kernel technology. Every part of the system
+is designed to be easily modified and extended.
----
+It is possible to develop and test new Hurd kernel components without rebooting
+the machine. Running your own kernel components doesn't interfere with other
+users, and so no special system privileges are required. The mechanism for
+kernel extensions is secure by design: it is impossible to impose your changes
+upon other users unless they authorize them or you are the system
+administrator.
-One advantage of the Hurd's separation of kernel-like functionality into
-separate components ([[servers|translator]]) is that these can be constructed
-using different programming lanugages, a thing that is not easily possible in a
-monolithic kernel. Essentially, only an interface from the programming
-environment to the RPC mechanism is required.
+The Hurd is real software that works right now. It is not a research project
+or a proposal. You don't have to wait at all before you can [[start
+using|running]] and [[developing|contributing]] it.