diff options
Diffstat (limited to 'hurd/subhurd')
-rw-r--r-- | hurd/subhurd/discussion.mdwn | 69 | ||||
-rw-r--r-- | hurd/subhurd/running_a_subhurd.mdwn | 42 |
2 files changed, 111 insertions, 0 deletions
diff --git a/hurd/subhurd/discussion.mdwn b/hurd/subhurd/discussion.mdwn new file mode 100644 index 00000000..3449edcd --- /dev/null +++ b/hurd/subhurd/discussion.mdwn @@ -0,0 +1,69 @@ +[[!meta copyright="Copyright © 2011 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]]."]]"""]] + +[[!tag open_issue_documentation]] + +IRC, freenode, #hurd, 2011-08-10 + + < braunr> youpi: aren't sub-hurds actually called "neighbor hurds" ? + < youpi> no idea + < braunr> i also don't understand the recursive property + < youpi> a user can run a subhurd + < neal> braunr: What don't you understand? + < youpi> a user in a subhurd can run a subhurd + < youpi> etc + < braunr> i'm not sure it's really recursive + < neal> youpi: At some point it was observed that you don't strictly + require any resources from the "parent" Hurd. + < neal> youpi: i.e., you could have two Hurds running "directly" on Mach + < youpi> sure + < neal> youpi: Hence neighbor rather than sub + < youpi> but you need to be root for that + < youpi> or else your subhurd can't do much + < neal> you need to have been authorized to use the required resouces + < youpi> which is about the same :) + < neal> depends how they are delegated + < youpi> that's still asking root for something + < neal> if you say so + < youpi> which is most probably not the default + < braunr> well, either you depend on the parent to do things on your + behalf, or you directly have some privileged ports + < braunr> i'd agree with youpi that it's pretty much having root access at + some point + < youpi> and usually you don't have privileged ports by default :) + < braunr> but we don't need to restrict the presentation to user only sub + hurds + < braunr> people don't mind switching to root on their desktops + < braunr> which is one of the reasons they ask "what does the hurd really + bring me today ?" + < braunr> but being able to run truely separate hurds or recursive hurds is + something nice most OSes can't do easily + < youpi> switching to root becomes a *pain* when you have to do it 1 every + two commands + < braunr> yes sure, but some people might just say you're clumsy :x + < neal> The question is: can I start a sub-hurd from within another hurd + that survives the parent's hurd exiting? The answer is yes. The reason + is that the sub-hurd can be constructed in such a way that it does not + rely on the parent. In this case, the parent does not necessarily + subjugate the sub-hurd. Hence the name. + < braunr> but that's out of the scope of the discussion + < antrik> using the traditional, root only mechanism, neighbour-hurd is + indeed a more appropriate term. apart from the initial terminal being + proxied to the parent system by the boot program, they are really equal + < antrik> with zhengda's work on non-root subhurds, you rely on various + proxies in the parent system to access privileged resources; so subhurd + is indeed a more appropriate term in this case + < antrik> (not only non-root subhurds in fact... when using any of the + proxies, such as the network multiplexer -- even if still running as + root...) + < youpi> antrik: you could still give a com0 port as terminal + < antrik> I don't think that's actually supported in the boot + program... but it doesn't really matter, as you don't really need the + terminal anyways -- you can always log in through the network diff --git a/hurd/subhurd/running_a_subhurd.mdwn b/hurd/subhurd/running_a_subhurd.mdwn new file mode 100644 index 00000000..f337108e --- /dev/null +++ b/hurd/subhurd/running_a_subhurd.mdwn @@ -0,0 +1,42 @@ +[[!meta copyright="Copyright © 1998, 1999, 2007, 2008 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="Running a Subhurd"]] + +By Roland McGrath. + +The most useful thing you can do when trying to troubleshoot the boot +sequence of the Hurd is try to run your the system in a +sub-hurd, while watching it using ps and gdb from the working hurd. Since +the sub-hurd is never going to make it all the way up, you don't even +really need to make a separate filesystem for it; you can just boot the +sub-hurd read-only on your main root filesystem if you like. + +The way to boot the sub-hurd is with `boot`. I would suggest something +like this: + + boot -d -I -Tdevice /boot/servers.boot hd0s6 + +The -d says to pause before the start-up of each server and wait for you to +hit return, which gives you time to go attach gdb to the task before it +starts running. The -I says to leave the terminal signals normal, so +hitting C-z will suspend boot rather than sending a C-z to the virtual +console device of the sub-hurd. (Note that suspending boot does not +suspend the sub-hurd, just boot itself; boot acts as the server for device +access from the sub-hurd, so the sub-hurd's attempts to write to its +console or open devices block while boot is suspended.) + +When you do `ps -A` on the main hurd, the sub-hurd tasks will appear as +unknown processes. You can figure out which is which just by looking at +the order of unknown processes that appear with higher PIDs than the boot +process. They appear in the order you see in the "bootstrap: ..." +messages, i.e. the first unknown after boot will be ext2fs.static, the +second exec, then init, then proc. |