path: root/advantages.mdwn
diff options
authorThomas Schwinge <>2010-11-25 11:55:21 +0100
committerThomas Schwinge <>2010-11-25 11:55:21 +0100
commit1e67a761cbfa94a69cec2f5709d23d7983cd0fc1 (patch)
tree0ae6ccf8bc14c0d171cff97c94de6a28c8b417d0 /advantages.mdwn
parent31a442c4b59c41eb6aa15b6a66af93955b302c62 (diff)
Talk about advantages, challenges, how many developers, why so few developers.
Diffstat (limited to 'advantages.mdwn')
1 files changed, 71 insertions, 0 deletions
diff --git a/advantages.mdwn b/advantages.mdwn
new file mode 100644
index 0000000..18e6506
--- /dev/null
+++ b/advantages.mdwn
@@ -0,0 +1,71 @@
+[[!meta copyright="Copyright © 2001, 2002, 2008, 2010 Free Software Foundation,
+[[!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
+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|hurd/translator/pfinet]] can bring down the whole kernel,
+and thus the whole system, which is a real problem in a monolothic Unix kernel
+One advantage of the Hurd's separation of kernel-like functionality into
+separate components ([[servers|hurd/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. (We have a
+[[project proposal|community/gsoc/project_ideas/language_bindings]] for this,
+if you're interested.)
+<!-- This is a bit questionable...
+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.
+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
+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|hurd/running]] and [[developing|contributing]] it.
+<!-- add stuff from hurd-talk.html -->