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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
[//]: # ([[meta copyright="Copyright © 2001, 2002, 2008, 2010, 2011, 2012, 2013 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]]."]]"""]]
[[!meta title="Advantages"]]
[[!tag stable_URL]]
The GNU Hurd is an incredible kernel, which has a number of enticing features:
* POSIX compliant
* GPLv3 compliant
* Object-orriented design
* Modularity
* Extensibility
* Educational
* No-reboot Design
* And of course, Translators
For more details on these advantages, refer to the sections below:
## POSIX Compliant
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|faq/posix_compatibility]].
What this means, on a higher level, is that any program written for another POSIX-compliant system (such as Linux or newer UNIX systems),
can be built, installed, and run on the Hurd. This means that, unlike, say, Plan 9 or Haiku, there's a huge library of programs already availble for the Hurd (and we mean *natively*, not under an emulator or a compatibility layer)!
## GPLv3 Compliant
The Hurd is built from the ground up as 100% Free Software, so anybody can use, modify, and redistribute it as they please, under the
terms of the [[GNU General Public License v3 (GPLv3)|GPL]]!
## Object-Orriented Design
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.
## Modularity
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 monolithic Unix kernel
architecture.
## Extensibility
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 languages -- 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.
See also [[unsorted/hurd-migr]] ([[!taglink open_issue_documentation]]).
-->
## Educational
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|extensibility]].
For more learning resources, see the [[/Documentation]] page.
## No-Reboot Design
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.
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 -->
*Technical advantages from a users viewpoint can be seen in the weblog entry [[Some technical advantages of the Hurd|community/weblogs/ArneBab/technical-advantages-of-the-hurd]].*
|