summaryrefslogtreecommitdiff
path: root/hurd/advantages.mdwn
blob: ba3a134b3a21bfff6ac716040c87ba5e4c886c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[[!meta copyright="Copyright © 2001, 2002, 2008, 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]]."]]"""]]

The Hurd is not the most advanced kernel known to the planet (yet),
but it does have a number of enticing features:

  * **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.

  * **it's stable**

    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 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.

---

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.