diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2010-11-14 21:11:45 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2010-11-14 21:11:45 +0100 |
commit | 512f1951ca41ef1a648a3b55d2ae44da059f5415 (patch) | |
tree | 10da22a358c0bc3fb59ec56c1073389e2f6f3b88 | |
parent | 1aaf9868f2b9c50c3c60cc9040e0b5c94dbe2b87 (diff) |
hurd/advantages: Rewritten some bits, and extended.
-rw-r--r-- | hurd/advantages.mdwn | 99 |
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. |