summaryrefslogtreecommitdiff
path: root/hurd/subhurd.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-12-13 17:11:51 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-12-13 17:11:51 +0100
commit2d75167da62e3486836e5f1773e5f1ab06e43fe8 (patch)
treee44fc83e0b1419836d1b21652ad1d38b8d0af2c4 /hurd/subhurd.mdwn
parent217998d56f5b6424a685f8c87f2c0e924d1c89da (diff)
parent5c5c16e265d8ef56b71f319885f32bf144bdea23 (diff)
Merge branch 'master' into external_pager_mechanism
Conflicts: microkernel/mach/external_pager_mechanism.mdwn
Diffstat (limited to 'hurd/subhurd.mdwn')
-rw-r--r--hurd/subhurd.mdwn51
1 files changed, 31 insertions, 20 deletions
diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn
index 5256a70b..84372dd1 100644
--- a/hurd/subhurd.mdwn
+++ b/hurd/subhurd.mdwn
@@ -1,19 +1,13 @@
-[[license text="""
-Copyright © 2007 Free Software Foundation, Inc.
+[[!meta copyright="Copyright © 2007, 2008, 2010 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.
-"""]]
+[[!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]]."]]"""]]
A sub-Hurd is like a [[neighbor_Hurd|neighborhurd]], however, makes use of some
resources provided by another Hurd. For instance, backing store and the
@@ -24,7 +18,8 @@ attach to them with gdb from the parent
([[debugging_via_subhurds|debugging/subhurd]]). This avoids deadlock, e.g.,
when the instance of gdb stops the server but requires its use. (Note: it is
possible to use [[debugging/gdb/noninvasive_debugging]], but this is less
-flexible.)
+flexible.) Vice versa, it is also possible to use a subhurd to debug the
+*main* Hurd system, for example, the latter's root file system.
# Howto
@@ -112,9 +107,9 @@ inside the subhurd, or to `ssh` directly into the subhurd.
If you want to access the subhurd processes from the outside, e.g. for
[[debugging_purposes|debugging/subhurd]] (or to get rid of a subhurd that
-didn't exit cleanly...), you need to find out how main Hurd PIDs correspond to
+didn't exit cleanly...), you need to find out how main Hurd [[PID]]s correspond to
subhurd processes: the subhurd processes appear in the main Hurd (e.g. if doing
-`ps -e`) as unknown processes, and vice versa, but the PIDs are different! To
+`ps -e`) as unknown processes, and vice versa, but the [[PID]]s are different! To
find out which process is which, you can simply compare the order -- while the
numbers are different, the order should usually match. Often it also helps to
look at the number of threads (e.g. using `ps -l`), as many servers have very
@@ -125,5 +120,21 @@ characteristic thread counts.
Read about using a subhurd for [[debugging_purposes|debugging/subhurd]].
-Roland's [tutorial](http://www.gnu.org/software/hurd/howto/subhurd.html) on
-setting up sub-hurds.
+Roland's tutorial about [[running_a_subhurd]].
+
+
+# Use Cases
+
+## Debugging the *Main* Hurd System
+
+A subhurd can be used for debugging the *main* Hurd system. This works as long
+as the subhurd doesn't use any services provided by the main Hurd. For
+example, if you already have a subhurd running at the time it happens, you can
+use that one to debug a deadlocked [[translator/ext2fs]] root file system in
+the *main* Hurd.
+
+For this, you need to get a handle to the main Hurd's [[ext2fs
+translator|translator/ext2fs]]'s [[PID]], but this is no problem, as currently
+[[PID]]s are visible across subhurd boundaries. (It is a [[!taglink
+open_issue_hurd]] whether this is the right thing to do in
+[[open_issues/virtualization]] contexts, but that's how it currently is.)