summaryrefslogtreecommitdiff
path: root/Hurd/NeighborHurd.mdwn
blob: b4d25586764f0fc6aec3affa48a5408df4aa83d2 (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
[[license text="""
Copyright © 2007 Free Software Foundation, Inc.

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

By contributing to this page, you agree to assign copyright for your
contribution to the Free Software Foundation.  The Free Software Foundation
promises to always use either a verbatim copying license or a free
documentation license when publishing your contribution.  We grant you back all
your rights under copyright, including the rights to copy, modify, and
redistribute your contributions.
"""]]

It is possible to run multiple instances of the Hurd
in parallel, on a single instance of Mach.  Other than
performance crosstalk, they are essentially isolated.
Practically, as many devices do not allow multiple
non-cooperating users, e.g., hard drive and network
this is not currently possible.  It can be overcome,
however, by virtualizing these problematic devices.

When extra hardware is not available, it is possible to
use a sub-hurd.  A sub-Hurd is like a neighbor Hurd,
however, makes use of some resources provided by another
Hurd.  For instance, backing store and the console.
([[SubhurdHowto]])

Sub-hurds are extremely useful for debugging core
servers as it is possible to attach to them with gdb
from the parent ([[DebuggingViaSubhurds]].  This avoids
deadlock, e.g., when the instance of gdb stops the
server but requires its use.
(Note: it is possible to use [[NonInvasiveDebugging]],
but this is less flexible.)