From 1049f72d37aa1efc434c96eff42ad522eb331c90 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 28 Mar 2011 10:12:21 +0200 Subject: hurd/translator/procfs/jkoenig/discussion: Place for jkoenig procfs discussion. Also add recent IRC discussion. --- hurd/translator/procfs/jkoenig.mdwn | 55 +------- hurd/translator/procfs/jkoenig/discussion.mdwn | 168 +++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 54 deletions(-) create mode 100644 hurd/translator/procfs/jkoenig/discussion.mdwn diff --git a/hurd/translator/procfs/jkoenig.mdwn b/hurd/translator/procfs/jkoenig.mdwn index 1275ce52..9543b658 100644 --- a/hurd/translator/procfs/jkoenig.mdwn +++ b/hurd/translator/procfs/jkoenig.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 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 @@ -21,56 +21,3 @@ Testing it is as simple as this: $ make $ settrans -ca proc procfs --compatible $ ls -l proc/ - - -# Open Issues - -[[!tag open_issue_hurd]] - - * IRC, #hurd, around September 2010 - - jkoenig: from a quick read, your procfs implementation seems quite - simple, probably much more what I was expecting from Madhusudan (who probably - now hates you :) ) - jkoenig: is it not possible to provide a /proc/self which points at the - client's pid? - (also, shouldn't /proc/version say something else than "Linux"?) - to make linux tools work, no :/ - kfreebsd does that too - really? - yes - (kfreebsd, not freebsd) - does kbsd's one print just "Linux version x.y.z" too, or something - more eg in a second line? - (as curiosity) - % cat /proc/version - Linux version 2.6.16 (des@freebsd.org) (gcc version 4.3.5) #4 Sun Dec - 18 04:30:00 CET 1977 - k - I had some problems with killall5 to read the pid from /proc, Is - this now more reliable? - I haven't tested with jkoenig's implementation - [...] - looks like he did 'self' too, see rootdir_entries[] in rootdir.c - but it doesn't point at self - youpi: there is no way to provide /proc/self, because the server - doesn't know the identity of the client - :/ - youpi: using the existing mechanisms, we would need another magic - lookup type - an alternative idea I discussed with cfhammer once would be for the - client to voluntarily provide it's identity to the server... but that would - be a rather fundamental change that requires careful consideration - also, object migration could be used, so the implementation would be - provided by the server, but the execution would happen in the client... but - that's even more involved :-) - but we've seen how much that'd help with a lot of other stuff - I'm not sure whether we discussed this on the ML at some point, or - only on IRC - it "just" needs to be commited :) - in either case, it can't hurt to bring this up again :-) - - * IRC, #hurd, around October 2010 - - the only glitch is that files/dirs have the right user as - owner, but always with root group diff --git a/hurd/translator/procfs/jkoenig/discussion.mdwn b/hurd/translator/procfs/jkoenig/discussion.mdwn new file mode 100644 index 00000000..b66af7de --- /dev/null +++ b/hurd/translator/procfs/jkoenig/discussion.mdwn @@ -0,0 +1,168 @@ +[[!meta copyright="Copyright © 2010, 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_hurd]] + +[[!toc]] + + +# Miscellaneous + +IRC, #hurd, around September 2010 + + jkoenig: from a quick read, your procfs implementation seems quite + simple, probably much more what I was expecting from Madhusudan (who + probably now hates you :) ) + jkoenig: is it not possible to provide a /proc/self which points at + the client's pid? + (also, shouldn't /proc/version say something else than "Linux"?) + to make linux tools work, no :/ + kfreebsd does that too + really? + yes + (kfreebsd, not freebsd) + does kbsd's one print just "Linux version x.y.z" too, or + something more eg in a second line? + (as curiosity) + % cat /proc/version + Linux version 2.6.16 (des@freebsd.org) (gcc version 4.3.5) #4 Sun + Dec 18 04:30:00 CET 1977 + k + I had some problems with killall5 to read the pid from /proc, Is + this now more reliable? + I haven't tested with jkoenig's implementation + [...] + looks like he did 'self' too, see rootdir_entries[] in rootdir.c + but it doesn't point at self + youpi: there is no way to provide /proc/self, because the server + doesn't know the identity of the client + :/ + youpi: using the existing mechanisms, we would need another magic + lookup type + an alternative idea I discussed with cfhammer once would be for + the client to voluntarily provide it's identity to the server... but that + would be a rather fundamental change that requires careful consideration + also, object migration could be used, so the implementation would + be provided by the server, but the execution would happen in the + client... but that's even more involved :-) + but we've seen how much that'd help with a lot of other stuff + I'm not sure whether we discussed this on the ML at some point, or + only on IRC + it "just" needs to be commited :) + in either case, it can't hurt to bring this up again :-) + + +# root group + +IRC, #hurd, around October 2010 + + the only glitch is that files/dirs have the right user as + owner, but always with root group + + +# `/proc/$pid/stat` being 400 and not 444, and some more + +IRC, freenode, #hurd, 2011-03-27 + + is there a reason for /proc/$pid/stat to be 400 and not 444 like on + Linux? + there is an option to procfs to make it 444 like Linux + jkoenig: ^ + pochu, hi + /proc/$pid/stat reveals information which is not usually + available on Hurd + so I made it 400 by default to avoid leaking anything + is there a security risk in providing that info? + probably not so much, but it seemed like it's not really a + descision procfs should make + I'm not sure which information we're speaking about, though, I + just remember the abstract reason. + things like the pid, the memory, the priority, the state... + sounds safe to expose + also it's 0444 by default in "compatible" mode + (which is necessary for the linux tools to work well) + yeah I saw that :) + my question is, should we change it to 0444 by default? if there + are no security risks and this improves compatibility, sounds like a good + thing to me + we're already 'leaking' part of that info through e.g. ps + I think /proc should be translated by /hurd/procfs --compatible + by default (I'm not sure whether it's already the case) + also I'm not sure why hurd-ps is setuid root, rather than the + proc server being less paranoid, but maybe I'm missing something. + jkoenig: it's not, at least not on Debian + youpi: hi, what do you think about starting procfs with + --compatible by default? + youpi: or changing /proc/$pid/stat to 0444 like on Linux + (--compatible does that among a few other things) + I guess you need it for something? + I'm porting libgtop :) + k + though I still think we should do this in procfs itself + ymmv + pochu, youpi, --compatible is also needed because mach's high + reported sysconf(_SC_CLK_TCK) makes some integers overflow (IIRC) + agreed + luckily, tools which use procfs usually try to detect the value + /proc uses rather than rely on CLK_TCK + (so we can choose whatever reasonable value we want) + +IRC, freenode, #hurd, 2011-03-28 + + jkoenig: does procfs expose any information that is not available + to everyone through the proc server?... + also, why is --compatible not the default; or rather, why is there + even another mode? the whole point of procfs is compatibility... + antrik, yes, through the /environ and (as mentionned above) + /stat files, but I've been careful to make these files readable only + to the process owner + --compatible is not the default because it relaxes this paranoia + wrt. the stat file, and does not conform to the specification with regard + to clock tick counters + what specification? + the linux proc(5) manpage + which says clock tick counters are in units of + 1/sysconf(_SC_CLK_TCK) + so you are saying that there is some information that the Hurd + proc server doesn't expose to unprivileged processes, but linux /proc + does? + yes + that's odd. I wonder what the reasoning behind that could be + but this information is available through Hurd ps? + BTW, what exactly is _SC_CLK_TCK supposed to be? + jkoenig: hm, just tried with two random processes on linux + (2.6.32), and enrivon is 400 + (which makes sense, as you could have sensible informations eg + in http_proxy or other envvars) + antrik, CLK_TCK is similar to HZ (maybe clock resolution instead + of time slices ?) + sysconf(3) says "The number of clock ticks per second." + antrik, I don't remember precisely what information this was, but + ps-hurd is setuid root. + anyway, if you run procfs --compatible as a user and try to read + foo/1/stat, the result is an I/O error, which is the result of the proc + server denying access. + but Linux /proc acutally uses HZ as the unit IIRC? or is + _SC_CLK_TCK=HZ on Linux?... + I expect they're equal. + in practice procps uses heuristics to guess what value /proc uses + (for compatibility purposes with older kernels) + I don't think HZ is POSIX, while _SC_CLK_TCK is specifies as the + unit for (at least) the values returned by times() + s/specifies/specified/ + antrik, some the information is fetched directly from mach by + libps, and understandably, the proc server does not give the task port to + anyone who asks. + well, as long as the information is exposed through ps, there is + no point in hiding it in procfs... + and I'm aware of the crazy guessing in libproc... I was actually + mentoring the previous procfs implementation + (though I never got around to look at his buggy code...) + ok -- cgit v1.2.3 From 0cd321c45aea93ea9bbf2821c2b81a45a9124f8b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 28 Mar 2011 10:30:54 +0200 Subject: Move a bunch of IRC discussion logs to discussion subpages. --- faq/posix_compatibility.mdwn | 19 +--- faq/posix_compatibility/discussion.mdwn | 25 +++++ hurd/running/qemu.mdwn | 39 +++----- hurd/running/qemu/discussion.mdwn | 52 ++++++++++ hurd/translator/tmpfs.mdwn | 12 +-- hurd/translator/tmpfs/discussion.mdwn | 17 ++++ hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn | 121 +++++++++++++++++------- microkernel/mach/gnumach/memory_management.mdwn | 2 + 8 files changed, 196 insertions(+), 91 deletions(-) create mode 100644 faq/posix_compatibility/discussion.mdwn create mode 100644 hurd/running/qemu/discussion.mdwn create mode 100644 hurd/translator/tmpfs/discussion.mdwn diff --git a/faq/posix_compatibility.mdwn b/faq/posix_compatibility.mdwn index a54822c5..4490b7cb 100644 --- a/faq/posix_compatibility.mdwn +++ b/faq/posix_compatibility.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 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 @@ -30,20 +30,3 @@ striving for total POSIX compliance -- and the high-level programs (that is, their users) may not even notice this, but we would avoid a lot of overhead that comes with wrapping the [[Hurd interfaces|hurd/interface]] to be POSIX compliant. - - -\#hurd IRC channel on Freenode, 2010-12-21: - - tschwinge: the writeup ignores the fact that POSIX compatibility - is not only for applications, but also for users familiar with the UNIX - environment - also, I still don't buy the fact that most software is not written - for POSIX. even if assuming that GNOME programs don't use POSIX (which is - only half true), there is a lot of other software in a system that is - just as important, though less visible - (server software, startup system, device management, automation, - ...) - tschwinge: BTW, I meant to (and partially did) write a blog - article on this topic -- but I didn't get around to finish it... - -[[!tag open_issue_documentation]] diff --git a/faq/posix_compatibility/discussion.mdwn b/faq/posix_compatibility/discussion.mdwn new file mode 100644 index 00000000..0d722c9e --- /dev/null +++ b/faq/posix_compatibility/discussion.mdwn @@ -0,0 +1,25 @@ +[[!meta copyright="Copyright © 2010, 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]] + +\#hurd IRC channel on Freenode, 2010-12-21: + + tschwinge: the writeup ignores the fact that POSIX compatibility + is not only for applications, but also for users familiar with the UNIX + environment + also, I still don't buy the fact that most software is not written + for POSIX. even if assuming that GNOME programs don't use POSIX (which is + only half true), there is a lot of other software in a system that is + just as important, though less visible + (server software, startup system, device management, automation, + ...) + tschwinge: BTW, I meant to (and partially did) write a blog + article on this topic -- but I didn't get around to finish it... diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 141ab2b1..73ef0479 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -1,3 +1,14 @@ +[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009, 2010, 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]]."]]"""]] + This page discusses things for [[Unix]] systems, there is a separate page for [[Microsoft_Windows]] systems. @@ -184,31 +195,3 @@ system after installation. [[Image_for_L4]] -- a QEMU image for the Hurd/L4 project. - - -# TODO - -[[IRC]], #hurd, 2007-07-04. - - so, is there a way to use a Debian GNU/Hurd partition (/dev/hda6) with qemu directly? - Don't dare to do that, please. - It will lead to inconsistencies. - Because the Linux kernel thinks that it has complete control over the disk, or something. - In theory you could run something like ``-hda /dev/hda'', having GRUB installed on there to offer you to boot your Hurd system from hda6 and that will even work, but then don't get the idea to stop qemu, mount that partition on your Linux system and restart qemu. That's where I got lots of inconsistencies then, afterwards. - it's probably the same problem as having that partition mounted, suspending to disk, booting into it in the Hurd, and resume Linux - right - That's a different problem. - Then the partitoon is still mounted. - no, I think it is basically the same problem - The file system stuff is cached in the kernel. - you have data that has not been written to disk yet - Right. - and neither is prepared for the resource to be shared - In the azeem-uni scenarion the data is on the file system layer and in my scenarion it's some disk block caching inside the Linux kernel, I guess. - anyway, do you guys think if I use -hda /dev/hda and tell Grub to boot off /dev/hda6, that the rest of hda should be fine, right? - maybe adding -snapshot makes it totally safe - azeem: Should be fine. - Yes. - -The problem is actually that the linux block cache doesn't make any consistency between /dev/hda and /dev/hda6, so if you give /dev/hda to qemu, qemu writings won't be consistent with mounting /dev/hda6 in linux. You can give /dev/hda6 directly to qemu and it will be fine. - diff --git a/hurd/running/qemu/discussion.mdwn b/hurd/running/qemu/discussion.mdwn new file mode 100644 index 00000000..fd0df4c5 --- /dev/null +++ b/hurd/running/qemu/discussion.mdwn @@ -0,0 +1,52 @@ +[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009, 2010, 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]] + +# Using Partitions + +[[IRC]], #hurd, 2007-07-04. + + so, is there a way to use a Debian GNU/Hurd partition + (/dev/hda6) with qemu directly? + Don't dare to do that, please. + It will lead to inconsistencies. + Because the Linux kernel thinks that it has complete control + over the disk, or something. + In theory you could run something like ``-hda /dev/hda'', + having GRUB installed on there to offer you to boot your Hurd system from + hda6 and that will even work, but then don't get the idea to stop qemu, + mount that partition on your Linux system and restart qemu. That's where + I got lots of inconsistencies then, afterwards. + it's probably the same problem as having that partition + mounted, suspending to disk, booting into it in the Hurd, and resume + Linux + right + That's a different problem. + Then the partitoon is still mounted. + no, I think it is basically the same problem + The file system stuff is cached in the kernel. + you have data that has not been written to disk yet + Right. + and neither is prepared for the resource to be shared + In the azeem-uni scenarion the data is on the file system layer + and in my scenarion it's some disk block caching inside the Linux kernel, + I guess. + anyway, do you guys think if I use -hda /dev/hda and tell Grub + to boot off /dev/hda6, that the rest of hda should be fine, right? + maybe adding -snapshot makes it totally safe + azeem: Should be fine. + Yes. + +The problem is actually that the linux block cache doesn't make any consistency +between /dev/hda and /dev/hda6, so if you give /dev/hda to qemu, qemu writings +won't be consistent with mounting /dev/hda6 in linux. You can give /dev/hda6 +directly to qemu and it will be fine. diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index 0179ad6c..d1476a92 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2011 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -6,8 +6,8 @@ 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] `tmpfs` is a file system server for temporary data storage without using a real (permanent) [[backing_store]]. @@ -21,9 +21,3 @@ with the additional block-level indirection layer that `ext2` (or any other disk-based file system) imposes. However, `tmpfs` is not working correctly at the moment: - -[[!inline -pages="hurd/translator/tmpfs/*" -show=0 -feeds=no -actions=yes]] diff --git a/hurd/translator/tmpfs/discussion.mdwn b/hurd/translator/tmpfs/discussion.mdwn new file mode 100644 index 00000000..d7a08491 --- /dev/null +++ b/hurd/translator/tmpfs/discussion.mdwn @@ -0,0 +1,17 @@ +[[!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_hurd]] + + * [[notes_bing]] + + * [[notes_various]] + + * [[tmpfs_vs_defpager]] diff --git a/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn index ef041a23..f0eb473c 100644 --- a/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn +++ b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 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 @@ -8,9 +8,12 @@ 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_hurd]] + \#hurd, freenode, 2010 - humm... why does tmpfs try to use the default pager? that's a bad idea, and probably will never work correctly... + humm... why does tmpfs try to use the default pager? that's a bad + idea, and probably will never work correctly... * slpz is thinking about old issues tmpfs should create its own pagers, just like ext2fs, storeio... slopez@slp-hurd:~$ settrans -a tmp /hurd/tmpfs 10M @@ -21,53 +24,99 @@ License|/fdl]]."]]"""]] :-) slpz: woo you fixed it? pochu: well, it's WIP, but reading/writing works... - I've replaced the use of default pager for the standard pager creation mechanism - slpz: err... how is it supposed to use swap space if not using the default pager? - slpz: or do you mean that it should act as a proxy, just allocating anonymous memory (backed by the default pager) itself? - antrik: the kernel uses the default pager if the application pager isn't responsive enough - antrik: it will just create memory objects and provide zerofilled pages when requested by the kernel (after a page fault) - youpi: that makes sense I guess... but how is that relevant to the question at hand?... + I've replaced the use of default pager for the standard pager + creation mechanism + slpz: err... how is it supposed to use swap space if not using the + default pager? + slpz: or do you mean that it should act as a proxy, just + allocating anonymous memory (backed by the default pager) itself? + antrik: the kernel uses the default pager if the application pager + isn't responsive enough + antrik: it will just create memory objects and provide zerofilled + pages when requested by the kernel (after a page fault) + youpi: that makes sense I guess... but how is that relevant to the + question at hand?... antrik: memory objects will contain the data by themselves - antrik: as youpi said, when memory is scarce, GNU Mach will start paging out data from memory objects to the default pager + antrik: as youpi said, when memory is scarce, GNU Mach will start + paging out data from memory objects to the default pager antrik: that's the way in which pages will get into swap space (if needed) - the thing being that the tmpfs pager has a chance to select pages he doesn't care any more about - slpz: well, the point is that instead of writing the pages to a backing store, tmpfs will just keep them in anonymous memory, and let the default pager write them out when there is pressure, right? - youpi: no idea what you are talking about. apparently I still don't really understand this stuff :-( + the thing being that the tmpfs pager has a chance to select pages + he doesn't care any more about + slpz: well, the point is that instead of writing the pages to a + backing store, tmpfs will just keep them in anonymous memory, and let the + default pager write them out when there is pressure, right? + youpi: no idea what you are talking about. apparently I still + don't really understand this stuff :-( ah, but tmpfs doesn't have pages he doesn't care about, does it? - antrik: yes, but the term "anonymous memory" could be a bit confusing. - antrik: in GNU Mach, anonymous memory is backed by a memory object without a pager. In tmpfs, nodes will be allocated in memory objects, and the pager for those memory objects will be tmpfs itself - slpz: hm... I thought anynymous memory is backed by memory objects created from the default pager? - yes, I understand that tmpfs is supposed to be the pager for the objects it provides. they are obviously not anonymoust -- they have inodes in the tmpfs name space - but my understanding so far was that when Mach returns pages to the pager, they end up in anonymous memory allocated to the pager process; and then this pager is responsible for writing them back to the actual backing store + antrik: yes, but the term "anonymous memory" could be a bit + confusing. + antrik: in GNU Mach, anonymous memory is backed by a memory object + without a pager. In tmpfs, nodes will be allocated in memory objects, and + the pager for those memory objects will be tmpfs itself + slpz: hm... I thought anynymous memory is backed by memory objects + created from the default pager? + yes, I understand that tmpfs is supposed to be the pager for the + objects it provides. they are obviously not anonymoust -- they have + inodes in the tmpfs name space + but my understanding so far was that when Mach returns pages to + the pager, they end up in anonymous memory allocated to the pager + process; and then this pager is responsible for writing them back to the + actual backing store am I totally off there?... - (i.e. in my understanding the returned pages do not reside in the actual memory object the pager provides, but in an anonymous memory object) - antrik: you're right. The trick here is, when does Mach return the pages? - antrik: if we set the attribute "can_persist" in a memory object, Mach will keep it until object cache is full or memory is scarce + (i.e. in my understanding the returned pages do not reside in the + actual memory object the pager provides, but in an anonymous memory + object) + antrik: you're right. The trick here is, when does Mach return the + pages? + antrik: if we set the attribute "can_persist" in a memory object, + Mach will keep it until object cache is full or memory is scarce or we change the attributes so it can no longer persist, of course - without a backing store, if Mach starts sending us pages to be written, we're in trouble - so we must do something about it. One option, could be creating another pager and copying the contents between objects. + without a backing store, if Mach starts sending us pages to be + written, we're in trouble + so we must do something about it. One option, could be creating + another pager and copying the contents between objects. another pager? not sure what you mean - BTW, you didn't really say why we can't use the default pager for tmpfs objects :-) - well, there're two problems when using the default pager as backing store for translators - 1) Mach relies on it to do swapping tasks, so meddling with it is not a good idea - 2) There're problems with seqnos when trying to work with the default pager from tasks other the kernel itself + BTW, you didn't really say why we can't use the default pager for + tmpfs objects :-) + well, there're two problems when using the default pager as backing + store for translators + 1) Mach relies on it to do swapping tasks, so meddling with it is + not a good idea + 2) There're problems with seqnos when trying to work with the + default pager from tasks other the kernel itself (probably, the latter could be fixed) - antrik: pager's terminology is a bit confusing. One can also say creating another memory object (though the function in libpager is "pager_create") + antrik: pager's terminology is a bit confusing. One can also say + creating another memory object (though the function in libpager is + "pager_create") not sure why "meddling" with it would be a problem... - and yeah, I was vaguely aware that there is some seqno problem with tmpfs... though so far I didn't really understand what it was about :-) + and yeah, I was vaguely aware that there is some seqno problem + with tmpfs... though so far I didn't really understand what it was about + :-) makes sense now - anyways, AIUI now you are trying to come up with a mechanism where the default pager is not used for tmpfs objects directly, but without making it inefficient? - slpz: still don't understand what you mean by creating another memory object/pager... + anyways, AIUI now you are trying to come up with a mechanism where + the default pager is not used for tmpfs objects directly, but without + making it inefficient? + slpz: still don't understand what you mean by creating another + memory object/pager... (and yeat, the terminology is pretty mixed up even in Mach itself) - antrik: I meant creating another pager, in terms of calling again to libpager's pager_create - slpz: well, I understand what "create another pager" means... I just don't understand what this other pager would be, when you would create it, and what for... + antrik: I meant creating another pager, in terms of calling again to + libpager's pager_create + slpz: well, I understand what "create another pager" means... I + just don't understand what this other pager would be, when you would + create it, and what for... antrik: oh, ok, sorry - antrik: creating another pager it's just a trick to avoid losing information when Mach's objects cache is full, and it decides to purge one of our objects - anyway, IMHO object caching mechanism is obsolete and should be replaced + antrik: creating another pager it's just a trick to avoid losing + information when Mach's objects cache is full, and it decides to purge + one of our objects + anyway, IMHO object caching mechanism is obsolete and should be + replaced I'm writting a comment to bug #28730 which says something about this antrik: just one more thing :-) - if you look at the code, for most time of their lives, anonymous memory objects don't have a pager + if you look at the code, for most time of their lives, anonymous + memory objects don't have a pager not even the default one - only the pageout thread, when the system is running really low on memory, gives them a reference to the default pager by calling vm_object_pager_create + only the pageout thread, when the system is running really low on + memory, gives them a reference to the default pager by calling + vm_object_pager_create this is not really important, but worth noting ;-) diff --git a/microkernel/mach/gnumach/memory_management.mdwn b/microkernel/mach/gnumach/memory_management.mdwn index 17dbe46f..17c7ad79 100644 --- a/microkernel/mach/gnumach/memory_management.mdwn +++ b/microkernel/mach/gnumach/memory_management.mdwn @@ -8,6 +8,8 @@ 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-02-15 etenil: originally, mach had its own virtual space (the kernel -- cgit v1.2.3 From 282118375c43d5668e9cdd3e353123a5a61e3009 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 28 Mar 2011 15:11:28 +0200 Subject: faq/how_many_developers: Typo fix. --- faq/how_many_developers.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faq/how_many_developers.mdwn b/faq/how_many_developers.mdwn index a553df21..3c430ca4 100644 --- a/faq/how_many_developers.mdwn +++ b/faq/how_many_developers.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 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 @@ -13,7 +13,7 @@ License|/fdl]]."]]"""]] Not many. One handful work on it in their free time, and another two handful do help with [[Debian GNU/Hurd|hurd/running/debian]] and [[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of -former developers are still availble for answering technical questions, +former developers are still available for answering technical questions, but are not really participating in the current development anymore. For reaching out to new developers, we're participating in [[Google's -- cgit v1.2.3 From bed5553b712d1e5618f25b2eb3c23aff72c68a3c Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmOlZj6Ku6rQ8E1D1Wl2ExOtSuLcJNVfyY" Date: Mon, 28 Mar 2011 17:09:06 +0000 Subject: --- hurd/running/qemu.mdwn | 152 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 135 insertions(+), 17 deletions(-) diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 73ef0479..302da372 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -12,7 +12,6 @@ License|/fdl]]."]]"""]] This page discusses things for [[Unix]] systems, there is a separate page for [[Microsoft_Windows]] systems. - # Readily Available Images To try out the Hurd you can use the image of the Debian GNU/Hurd: @@ -50,39 +49,128 @@ Instructions for creating a qemu image from the install CDs from debian installe # KVM acceleration +Check if your CPU supports kvm: + $ egrep '^flags.*(vmx|svm)' /proc/cpuinfo + +#### If you don't have hardware support (slow): + $ apt-get install qemu + +#### If you have hardware support (recommended): + $ apt-get install qemu-kvm + $ modprobe kvm + +Intel VTx/VTd: Enable Intel kvm in the BIOS + +On a HP xw4600 Workstation: F10, Security->System Security; Enable VTx and VTd + +Check that the kvm module is loaded: + + $ lsmod|grep kvm + kvm_intel 38050 0 + kvm 213800 1 kvm_intel + + $ ls -l /dev/kvm + crw-rw----+ 1 root kvm 10, 232 Mar 14 15:02 /dev/kvm + +Add yourself to the kvm group: adduser your_user kvm; logout; login + +AMD SVM (AMD-V): Enable AMD-V in the BIOS if not enabled. + +Check that the kvm module is loaded: + + $ lsmod|grep kvm + kvm_amd 31862 0 + kvm 214088 1 kvm_amd + +More info on kvm at: http://www.linux-kvm.org/page/FAQ + If your machine supports hardware acceleration, you should really use the kvm variant of qemu, as it speeds things quite a lot. Note however that kvm tends to make assumptions when accelerating things in the linux kernel, you may need some -no-kvm-something option. At the moment in Debian you need to pass -no-kvm-irqchip -else IRQs may hang sooner or later. +if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or later. The kvm irq problems will be solved in kernel 2.6.39. + +# Installing Debian/Hurd with QEMU using the Debian installer -# Installing Debian/Hurd with QEMU +Note: If you have hardware support, replace the qemu commands below with kvm, e.g. qemu-ing -> kvm-img. -First off you will need to create a disk image using `qemu-img`. I have set mine to 2 gigabytes, although you should be able to get away with less(Currently, the maximum disk image size one can create with QEMU is 4.5G). +First off you will need to create a disk image using `qemu-img`. I have set mine to 2 gigabytes, although you should be able to get away with less. $ qemu-img create hd0.img 2G -Next you will want to start up QEMU and begin the installation process. The first time you run it you will want to use the `-boot d` option to boot off the cdrom. +Next you will want to start up QEMU and begin the installation process. + + $ qemu -hda hd0.img -cdrom mini.iso -net nic,model=rtl8139 + +Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. + +In the installer make your choice of install option: Default install (or your choice) + + Language: English + + Country, territory or area: your_choice - $ qemu -hda hd0.img -cdrom debian-K16-hurd-i386-CD1.iso -fda floppy.img -boot d + Locale: your_choice -Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. Once you have finished installing the base system select the reboot option as this will ensure the disk is properly un-mounted. When the Debian CD menu comes up again simply close QEMU. +Note that even if you can set the country and locale, your keyboard is not yet supported. -Now run your image with floppy booting (`-boot a`) and finish the install (`./native-install` .. etc). -You'll want to add more memory or activate swap for `./native-install` or it will hang. -Starting qemu with `-m 512` worked for me. -Swap can be activated like this (replace hd0s2 with your swap partition): +#### In case of problems with locale settings do the following after the installation is completed - $ cd /dev/ - $ MAKEDEV hd0s2 - $ /hurd/mach-defpager - $ swapon /dev/hd0s2 +To get the correct timezone: dpkg-reconfigure tzdata -**Important:** Older versions on gnumach needed that the `-M isapc` was passed to qemu. This is not needed anymore. +To get your locale setting: nano /etc/locale.gen + +Update with command: locale-gen + +Network: Now configured automatically with dhcp + Parameters: + IP address: 10.0.2.15 + Netmask: 255.255.0.0 + Gateway: 10.0.2.2 + Nameserver: 10.0.2.3 + + Qemu network setup: + QEMU VLAN <------> Firewall/DHCP server <-----> Internet + | (10.0.2.2) + | + ----> DNS server (10.0.2.3) + | + ----> SMB server (10.0.2.4) + +Partitioning method: Guided or your choice +Partitioning /dev/hd0: All files in one partition. + +Note: Since partman is not yet fixed to set up to mount partitions automatically at reboot, it is crucial that you choose this option for now. + +Once you have finished installing the base system (might take some time) the system is rebooted and next boot will be from the hard disk and your are able to log in to your newly installed GNU/Hurd system. Also see another text about how to [[gnu/create_an_image]] for the [[GNU_system|gnu]]. +## Running the installed system + +Starting qemu/qemu-kvm: + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hurd-install.kvm -vga vmware + vmsvga_value_write: guest runs Linux. + +See below on port forwarding in the networking section. + +If you have problems with grub hanging during boot with the vmware vga driver: Disable the graphic boot + $ nano /etc/default/grub + uncomment GRUB_TERMINAL=console + run /usr/sbin/update-grub + +### A few words about the qemu console + +During the graphical emulation, you can use the following keys: + -f Toggle full screen + -u Restore the screen's un-scaled dimensions + -n Switch to virtual console 'n'. Standard console mappings are: + 1 Target system display + 2 Monitor + 3 Serial port + Toggle mouse and keyboard grab. + # Transferring Files @@ -131,6 +219,10 @@ If you just want to access the internet from within QEMU, you can setup pfinet f # settrans -afgp /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 # echo "nameserver 10.0.2.3" > /etc/resolv.conf +Alternately DHCP does work now: dhclient eth0 + +To get ssh working: apt-get install random-egd openssh-server (Similarly for telnet if preferred) + (See also .) Outgoing internet connections should just work then. @@ -140,8 +232,34 @@ but `apt-get update` should work after you have filled out After that you should be able to install other network packages, but note that `ping` doesn't work with QEMU's user-networking stack. -If you want to connect from the host system to the Hurd system running in QEMU, you need to setup something more advanced, like bridged networking. +If you want to connect from the host system to the Hurd system running in QEMU, you can use port forwarding in QEMU or to setup something more advanced, like bridged networking. + +## Port Forwarding in QEMU +(In the following we assume we use kvm!) + +#### Contacting Hurd from a terminal in your host system +This is the recommended way to work with a CLI since you have all your +keyboard and locale settings are preserved. + +a) with ssh + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hurd-install.kvm & + +Contacting the running Hurd: + $ ssh -p5555 localhost +Copying files: + 1) On your host + To Hurd: scp -p -P5555 file localhost: + From Hurd: scp -p -P5555 localhost:file . + 2) On Hurd + To host: scp -p file {10.0.2.2,your_host_ip}: . + From host: scp -p {10.0.2.2,your_host_ip}:file . + +b) with telnet + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5556-:23 -hda hurd-install.qemu & +Contacting the running Hurd: + $ telnet localhost 5556 +c) With the tap interface, see below. ## Bridged Networking -- cgit v1.2.3 From 1904698b384d0ec8b76fc2fb9a40c7fd3ab036be Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmOlZj6Ku6rQ8E1D1Wl2ExOtSuLcJNVfyY" Date: Mon, 28 Mar 2011 17:30:54 +0000 Subject: --- hurd/running/qemu.mdwn | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 302da372..97d2a6db 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -50,6 +50,7 @@ Instructions for creating a qemu image from the install CDs from debian installe # KVM acceleration Check if your CPU supports kvm: + $ egrep '^flags.*(vmx|svm)' /proc/cpuinfo #### If you don't have hardware support (slow): @@ -72,7 +73,9 @@ Check that the kvm module is loaded: $ ls -l /dev/kvm crw-rw----+ 1 root kvm 10, 232 Mar 14 15:02 /dev/kvm -Add yourself to the kvm group: adduser your_user kvm; logout; login +Add yourself to the kvm group: + + $ adduser your_user kvm; logout; login AMD SVM (AMD-V): Enable AMD-V in the BIOS if not enabled. @@ -94,9 +97,9 @@ if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or l Note: If you have hardware support, replace the qemu commands below with kvm, e.g. qemu-ing -> kvm-img. -First off you will need to create a disk image using `qemu-img`. I have set mine to 2 gigabytes, although you should be able to get away with less. +First off you will need to create a disk image using `qemu-img`. I have set mine to 4 gigabytes, although you should be able to get away with less. - $ qemu-img create hd0.img 2G + $ qemu-img create hd0.img 4G Next you will want to start up QEMU and begin the installation process. @@ -107,23 +110,21 @@ Now at his point do the regular install using `hd0` as your harddrive. Partition In the installer make your choice of install option: Default install (or your choice) Language: English - Country, territory or area: your_choice - Locale: your_choice Note that even if you can set the country and locale, your keyboard is not yet supported. -#### In case of problems with locale settings do the following after the installation is completed - -To get the correct timezone: dpkg-reconfigure tzdata +In case of problems with locale settings do the following after the installation is completed -To get your locale setting: nano /etc/locale.gen - -Update with command: locale-gen + To get the correct timezone: + $ dpkg-reconfigure tzdata + To get your locale setting: + $ nano /etc/locale.gen + $ locale-gen Network: Now configured automatically with dhcp - Parameters: + IP address: 10.0.2.15 Netmask: 255.255.0.0 Gateway: 10.0.2.2 @@ -138,7 +139,8 @@ Network: Now configured automatically with dhcp ----> SMB server (10.0.2.4) Partitioning method: Guided or your choice -Partitioning /dev/hd0: All files in one partition. + +Partitioning `/dev/hd0`: All files in one partition. Note: Since partman is not yet fixed to set up to mount partitions automatically at reboot, it is crucial that you choose this option for now. @@ -156,13 +158,15 @@ Starting qemu/qemu-kvm: See below on port forwarding in the networking section. If you have problems with grub hanging during boot with the vmware vga driver: Disable the graphic boot + $ nano /etc/default/grub uncomment GRUB_TERMINAL=console - run /usr/sbin/update-grub + $ /usr/sbin/update-grub ### A few words about the qemu console During the graphical emulation, you can use the following keys: + -f Toggle full screen -u Restore the screen's un-scaled dimensions -n Switch to virtual console 'n'. Standard console mappings are: @@ -242,11 +246,15 @@ This is the recommended way to work with a CLI since you have all your keyboard and locale settings are preserved. a) with ssh + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hurd-install.kvm & Contacting the running Hurd: + $ ssh -p5555 localhost + Copying files: + 1) On your host To Hurd: scp -p -P5555 file localhost: From Hurd: scp -p -P5555 localhost:file . @@ -255,8 +263,11 @@ Copying files: From host: scp -p {10.0.2.2,your_host_ip}:file . b) with telnet + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5556-:23 -hda hurd-install.qemu & + Contacting the running Hurd: + $ telnet localhost 5556 c) With the tap interface, see below. -- cgit v1.2.3 From 13dfdd1391c0c8a5bd93e72233a9cb0497002ae5 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmOlZj6Ku6rQ8E1D1Wl2ExOtSuLcJNVfyY" Date: Mon, 28 Mar 2011 21:00:17 +0000 Subject: --- hurd/running/qemu.mdwn | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 97d2a6db..26784489 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -91,19 +91,19 @@ If your machine supports hardware acceleration, you should really use the kvm va -no-kvm-irqchip -if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or later. The kvm irq problems will be solved in kernel 2.6.39. +to the command line, see below, if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or later. The kvm irq problems will be solved in kernel 2.6.39. # Installing Debian/Hurd with QEMU using the Debian installer Note: If you have hardware support, replace the qemu commands below with kvm, e.g. qemu-ing -> kvm-img. -First off you will need to create a disk image using `qemu-img`. I have set mine to 4 gigabytes, although you should be able to get away with less. +First off you will need to create a disk image using `qemu-img`. I have set mine to 4 GiB, although you should be able to get away with less. $ qemu-img create hd0.img 4G Next you will want to start up QEMU and begin the installation process. - $ qemu -hda hd0.img -cdrom mini.iso -net nic,model=rtl8139 + $ qemu -m 512 -hda hd0.img -cdrom mini.iso -net nic,model=rtl8139 Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. @@ -113,9 +113,9 @@ In the installer make your choice of install option: Default install (or your ch Country, territory or area: your_choice Locale: your_choice -Note that even if you can set the country and locale, your keyboard is not yet supported. +Note that even if you can set the country and locale, your local keyboard is not yet supported. -In case of problems with locale settings do the following after the installation is completed +In case of problems with timezone or locale settings do the following after the installation is completed To get the correct timezone: $ dpkg-reconfigure tzdata @@ -138,13 +138,13 @@ Network: Now configured automatically with dhcp | ----> SMB server (10.0.2.4) -Partitioning method: Guided or your choice +Partitioning method: Guided (or your choice) Partitioning `/dev/hd0`: All files in one partition. -Note: Since partman is not yet fixed to set up to mount partitions automatically at reboot, it is crucial that you choose this option for now. +**Important**: Since partman does not yet mount other partitions than / automatically at reboot, it is crucial that you choose this option for now. -Once you have finished installing the base system (might take some time) the system is rebooted and next boot will be from the hard disk and your are able to log in to your newly installed GNU/Hurd system. +Once you have finished installing the base system (might take some time) the system is rebooted and next boot will be from the hard disk. Now you are able to log in to your newly installed GNU/Hurd system. Also see another text about how to [[gnu/create_an_image]] for the [[GNU_system|gnu]]. @@ -152,10 +152,13 @@ Also see another text about how to [[gnu/create_an_image]] for the ## Running the installed system Starting qemu/qemu-kvm: - $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hurd-install.kvm -vga vmware + + $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hd0.img -vga vmware vmsvga_value_write: guest runs Linux. -See below on port forwarding in the networking section. +Note: See below on port forwarding in the networking section. + +Note: Using the vmware vga driver is useful for setting up X windows, see [Debian GNU/Hurd] (http://www.debian.org/ports/hurd/hurd-install) If you have problems with grub hanging during boot with the vmware vga driver: Disable the graphic boot @@ -191,13 +194,13 @@ You may wish to mount your disk image on your host system to transfer files. To hd0.img1 * 63 3515903 1757920+ 83 Linux hd0.img2 3515904 4193279 338688 82 Linux swap / Solaris -Now take the number of sectors for the beginning of the partition and multiply it by the sector size. My partition starts at sector 63 and I have a sector size of 512 therefor my offset is 32256. +Now take the number of sectors for the beginning of the partition and multiply it by the sector size. My partition starts at sector 63 and I have a sector size of 512 therefore my offset is 32256. For a start at 2048 the ofsset is 1048576. # mount -o loop,offset=32256 hd0.img /mnt/diskimage ## Having QEMU create *virtual FAT disk images* -[Manual](http://www.nongnu.org/qemu/qemu-doc.html#SEC25). +[Link to the manual](http://www.nongnu.org/qemu/qemu-doc.html#SEC25). QEMU has a facility to create FAT file systems on-the-fly: @@ -223,9 +226,13 @@ If you just want to access the internet from within QEMU, you can setup pfinet f # settrans -afgp /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 # echo "nameserver 10.0.2.3" > /etc/resolv.conf -Alternately DHCP does work now: dhclient eth0 +Alternately DHCP does work now: + + # dhclient eth0 + +To get ssh working: -To get ssh working: apt-get install random-egd openssh-server (Similarly for telnet if preferred) + # apt-get install random-egd openssh-server (Similarly for telnet if preferred) (See also .) @@ -241,15 +248,14 @@ If you want to connect from the host system to the Hurd system running in QEMU, ## Port Forwarding in QEMU (In the following we assume we use kvm!) -#### Contacting Hurd from a terminal in your host system -This is the recommended way to work with a CLI since you have all your -keyboard and locale settings are preserved. +#### Logging in to Hurd from a terminal in your host system +This is the recommended way to work with a Command Line Interface (CLI) since all your keyboard and locale settings are preserved. -a) with ssh +a) with ssh (assuming you have installed openssh-server) - $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hurd-install.kvm & + $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hd0.img & -Contacting the running Hurd: +Logging in to the running Hurd: $ ssh -p5555 localhost @@ -262,11 +268,11 @@ Copying files: To host: scp -p file {10.0.2.2,your_host_ip}: . From host: scp -p {10.0.2.2,your_host_ip}:file . -b) with telnet +b) with telnet (assuming you have installed a telnet server, like telnetd) $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5556-:23 -hda hurd-install.qemu & -Contacting the running Hurd: +Logging in to the running Hurd: $ telnet localhost 5556 -- cgit v1.2.3 From 85ff0fe085cddf819c3b679289b9aa00ab023065 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmOlZj6Ku6rQ8E1D1Wl2ExOtSuLcJNVfyY" Date: Mon, 28 Mar 2011 21:08:47 +0000 Subject: --- hurd/running/qemu.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 26784489..321ceadf 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -158,7 +158,7 @@ Starting qemu/qemu-kvm: Note: See below on port forwarding in the networking section. -Note: Using the vmware vga driver is useful for setting up X windows, see [Debian GNU/Hurd] (http://www.debian.org/ports/hurd/hurd-install) +Note: Using the vmware vga driver is useful for setting up X windows, see [Debian GNU/Hurd](http://www.debian.org/ports/hurd/hurd-install) If you have problems with grub hanging during boot with the vmware vga driver: Disable the graphic boot -- cgit v1.2.3 From ef20dadf4b2dc498f99f3101cd17349339fb9354 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 29 Mar 2011 10:46:11 +0200 Subject: More from IRC. --- open_issues/inotify_file_notice_changes.mdwn | 42 ++++++++++++++++++++++ ...local_socket_credentials_for_local_sockets.mdwn | 42 ++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 open_issues/inotify_file_notice_changes.mdwn create mode 100644 open_issues/pflocal_socket_credentials_for_local_sockets.mdwn diff --git a/open_issues/inotify_file_notice_changes.mdwn b/open_issues/inotify_file_notice_changes.mdwn new file mode 100644 index 00000000..a30cd3d3 --- /dev/null +++ b/open_issues/inotify_file_notice_changes.mdwn @@ -0,0 +1,42 @@ +[[!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]]."]]"""]] + +IRC, freenode, #hurd, 2011-03-28 + +[[!tag open_issue_hurd]] + + I've been going through the xmlfs code, and plan to have it + monitor the backing store (xml file) for changes and update the presented + directory hierarchy when something is changed; is there a better way to + check a file for changes beyond checking its modification time every few + minutes? + barrucadu: In the Hurd spirit, you'd use file_notice_changes + (fs.defs). + thanks + we should manage to work out an inotify interface around it, btw + like gamin? + imho making gamin work should gain all the fam-using + applications + (which, looking at the sources, seems to support hurd already, not + sure why it's not built) + pochu: the hurd_notify of gamin does not build OOTB + > /build/buildd/gamin-0.1.10/./libgamin/gam_data.c:476: error: + 'PTHREAD_MUTEX_RECURSIVE' undeclared (first use in this function) + there are few patches in bugzilla to make it compile + if they work, and you point me to them, I can upload a new gamin + with them included + #315644, #588337. #605246 + and iirc there's something else i have locally but not send yet + please check and submit :) + ah no, those three contains all the build issues + .. plus relative proposed fixes + ok, I'll try to get to it soonish + and you should know about two of them already ;D + please remind me if I don't :) diff --git a/open_issues/pflocal_socket_credentials_for_local_sockets.mdwn b/open_issues/pflocal_socket_credentials_for_local_sockets.mdwn new file mode 100644 index 00000000..5a71412e --- /dev/null +++ b/open_issues/pflocal_socket_credentials_for_local_sockets.mdwn @@ -0,0 +1,42 @@ +[[!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]]."]]"""]] + +IRC, freenode, #hurd, 2011-03-28 + +[[!tag open_issue_hurd]] + + basically, i'm trying to implement socket credentials for local + sockets, and i guessed doing it in pflocal would be the appropriate place + what i thought was filling the cmsg data for MSG_CRED at + S_socket_recv() call + in case i missed it, would there be a way to "identify" the + other side of the port associated to the sock_user of that call? + pinotree: that's needed by dbus right? cool! (and I don't know) + (yes, and gamin) + pinotree: you have them already, they're just not stored + see S_io_reauthenticate + Throw away the ids we went through all that trouble to get... + (comment) + * pinotree looks + hm, and who calls that rpc? + everybody + since that's how ext2fs knows the permission to apply, for instance + ah, i was referring to the reauthenticate of pflocal, not + auth_server_authenticate() + that's what I'm saying + see __hurd_file_name_lookup_retry, which is the very internal part + of open() + it calls io_reauthenticate() + to authenticate itself to the underlying translator of the opened + node + youpi: so, hm, could be an option make the result of pflocal's + S_io_reauthenticate cached in the sock_user struct? + yes + nice thanks, i will try that change first -- cgit v1.2.3 From 2968bbdfc5d2ab381bbc9ce88e6ae90493cba2cb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 29 Mar 2011 12:19:10 +0200 Subject: faq/which_microkernel: Resurrect Olaf's text, and work on it some more. --- faq/which_microkernel.mdwn | 44 +++++++++++++++++++++- history/port_to_another_microkernel.mdwn | 17 ++++++--- .../port_to_another_microkernel/discussion.mdwn | 18 --------- 3 files changed, 54 insertions(+), 25 deletions(-) diff --git a/faq/which_microkernel.mdwn b/faq/which_microkernel.mdwn index 608e6b3f..0852cf09 100644 --- a/faq/which_microkernel.mdwn +++ b/faq/which_microkernel.mdwn @@ -8,8 +8,48 @@ 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="What happened with the ports to the L4 / Coyotos / Viengoos +[[!meta title="What happened with the Hurd ports to the L4 / Coyotos / Viengoos microkernels?"]] -This story is told on the page about the + + +It is a frequently asked question, which microkernel the Hurd should be based +upon assuming that [[microkernel/Mach]] is no longer considered state of the +art, and it is well known that there has been a lot of discussion about this +topic, and also some code produced, but then, years later, the Hurd is still +based on [[GNU Mach|microkernel/mach/gnumach]]. + +Around the turn of the millenium, some of the Hurd developers began +experimenting with using other [[microkernel]]s for the Hurd, as they have been +encountering a number of fundamental design issues with the [[Mach +microkernel|microkernel/mach]], mostly with respect to +[[open_issues/resource_management_problems]]. + +At that time, L4 (Pistachio) was the prime candidate. A reimplementation of +the Hurd on this microkernel looked promising, and got pretty far (running some +simple POSIX programs, such as `banner`). However, over time some lingering +design issues turned out to be fundamental problems: the original L4 is not +suitable for building object-capability systems like the Hurd. Thus +development was aborted in 2005. + +During that process, Neal Walfield and Marcus Brinkmann started on a period of +research on other microkernels, getting in deeper contact with other +researchers. There was a lot of discussion, and a lot of good ideas produced, +but a straight-forward port of the Hurd to such a modern microkernel (Coyotos, +or the new L4 variants, for example) didn't seem feasible to them anymore: they +found microkernel design and system design to be interconnected in very +intricate ways, and this demanded design changes in the Hurd's core itself. + +Based on this experience, the next step was to write an own microkernel +instead, which Neal Walfield began doing with his experimental +[[microkernel/Viengoos]] project, for his research on resource management. +Currently he works in another research area though, and thus Viengoos is on +hold. + +Note that while none of the microkernel research work is active now, the +previous experiments already yielded a lot of experience, which will be very +useful in the further development / improvement of the mainline (Mach-based) +Hurd implementation. + +For more detauls about this topic, please see our history page about the [[history/port_to_another_microkernel]]. diff --git a/history/port_to_another_microkernel.mdwn b/history/port_to_another_microkernel.mdwn index b347cf38..a8ec3fe7 100644 --- a/history/port_to_another_microkernel.mdwn +++ b/history/port_to_another_microkernel.mdwn @@ -11,9 +11,16 @@ License|/fdl]]."]]"""]] [[!meta title="Porting the Hurd to another microkernel"]] -At first, there was an effort to port the Hurd from the [[Mach -microkernel|microkernel/mach]] to the [[L4_microkernel_family|microkernel/l4]]. -Then the story continued... + + +It is a frequently asked question, [[faq/which_microkernel]] the Hurd should be +based upon assuming that [[microkernel/Mach]] is no longer considered state of +the art, and it is well known that there has been a lot of discussion about +this topic, and also some code produced, but then, years later, the Hurd is +still based on [[GNU Mach|microkernel/mach/gnumach]]. + +At first, there was an effort to directly port the Hurd to the +[[L4_microkernel_family|microkernel/l4]]. Then the story continued... [[!toc levels=2]] @@ -139,7 +146,7 @@ As of 2005, development of Hurd/L4 has stopped. # Coyotos Following that, an attempt was started to use the kernel of the -[[microkernel/Coyotos]] system. As Coyotos is an object capability system +[[microkernel/Coyotos]] system. As Coyotos is an object-capability system througout, the microkernel would obviously be more suitable for this purpose; and it looked pretty promising in the beginning. However, further investigations found that there are some very fundamental philosophical @@ -152,7 +159,7 @@ actual code.) By now (that is, after 2006), there were some new [[microkernel/L4]] variants available, which added protected [[IPC]] paths and other features necessary for -object capability systems; so it might be possible to implement the Hurd on top +object-capability systems; so it might be possible to implement the Hurd on top of these. However, by that time the developers concluded that microkernel design and system design are interconnected in very intricate ways, and thus trying to use a third-party microkernel will always result in trouble. So Neal diff --git a/history/port_to_another_microkernel/discussion.mdwn b/history/port_to_another_microkernel/discussion.mdwn index 1a06c8ba..f2161195 100644 --- a/history/port_to_another_microkernel/discussion.mdwn +++ b/history/port_to_another_microkernel/discussion.mdwn @@ -8,24 +8,6 @@ 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]]."]]"""]] -I can't say that I like the merge of FAQ entry an Hurd/L4 page. The stuff taken -from the L4 page creates the impression that Mach is a relic that we urgently -need to get rid of -- an impression I carefully tried to avoid in my own -writeup. Also, it's way too long IMHO. (In fact my own writeup is already on -the fringe of being too wordy I fear.) And I don't think that bare links to -other pages make good FAQ answers in general. - -IMHO the original FAQ entry should be restored (with some details fixed); while -the Hurd/L4 page can be referenced for further details. - --- antrik - -> OK, I understand (and accept) your rationale; [[!taglink -> open_issue_documentation]]. --[[tschwinge]] - - ---- - IRC, #hurd, 2011-01-12. [[!taglink open_issue_documentation]] -- cgit v1.2.3 From cad68216f5dc345506adbc1b22c990ee6ff0c600 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 29 Mar 2011 12:24:23 +0200 Subject: community/gsoc/project_ideas/procfs: Change text referring to jkoenig's procfs. --- community/gsoc/project_ideas/procfs.mdwn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/community/gsoc/project_ideas/procfs.mdwn b/community/gsoc/project_ideas/procfs.mdwn index b4d1dc5f..0434ab9c 100644 --- a/community/gsoc/project_ideas/procfs.mdwn +++ b/community/gsoc/project_ideas/procfs.mdwn @@ -47,5 +47,6 @@ GSoC 2008. He is still working on some outstanding issues. --- -Note that [[jkoenig's `procfs` re-write|hurd/translator/procfs/jkoenig]] should -address all these issues already. +Note that this was not the end of the story: [[jkoenig's +`procfs`|hurd/translator/procfs/jkoenig]] is yet another re-written and +improved version. -- cgit v1.2.3 From 69d6c0949b1b16f50588c6aebccc03a3f21b9135 Mon Sep 17 00:00:00 2001 From: "https://launchpad.net/~marco-buono71" Date: Tue, 29 Mar 2011 20:56:24 +0000 Subject: --- translation.mdwn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 translation.mdwn diff --git a/translation.mdwn b/translation.mdwn new file mode 100644 index 00000000..68669f84 --- /dev/null +++ b/translation.mdwn @@ -0,0 +1,24 @@ +[[!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]]."]]"""]] + +HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this +line. + +By creating this page, you agree to assign copyright for your contribution to +the Free Software Foundation, . The Free Software +Foundation promises to always use a free documentation license (as per our +criteria of free documentation) when publishing your contribution. We grant +you back all your rights under copyright, including the rights to copy, modify, +and redistribute your contributions. + +We're requiring these copyright assignments, so that we'll easily be able to +include your contributions in official GNU documentation, such as the GNU Hurd +Reference Manual, etc. Send email to if there are +questions. -- cgit v1.2.3 From 179bfdc9398e75fabc90499d61d410389b873ae1 Mon Sep 17 00:00:00 2001 From: "https://launchpad.net/~marco-buono71" Date: Tue, 29 Mar 2011 21:00:13 +0000 Subject: --- translation.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/translation.mdwn b/translation.mdwn index 68669f84..59ab92d9 100644 --- a/translation.mdwn +++ b/translation.mdwn @@ -22,3 +22,16 @@ We're requiring these copyright assignments, so that we'll easily be able to include your contributions in official GNU documentation, such as the GNU Hurd Reference Manual, etc. Send email to if there are questions. + + + +[[!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]]."]]"""]] + -- cgit v1.2.3 From c80c2dc972fd48c75050d80b04bd8e3de94bcbe7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 30 Mar 2011 15:35:11 +0200 Subject: translation: Remove empty page. Has been created in commits 69d6c0949b1b16f50588c6aebccc03a3f21b9135 and 179bfdc9398e75fabc90499d61d410389b873ae1. --- translation.mdwn | 37 ------------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 translation.mdwn diff --git a/translation.mdwn b/translation.mdwn deleted file mode 100644 index 59ab92d9..00000000 --- a/translation.mdwn +++ /dev/null @@ -1,37 +0,0 @@ -[[!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]]."]]"""]] - -HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this -line. - -By creating this page, you agree to assign copyright for your contribution to -the Free Software Foundation, . The Free Software -Foundation promises to always use a free documentation license (as per our -criteria of free documentation) when publishing your contribution. We grant -you back all your rights under copyright, including the rights to copy, modify, -and redistribute your contributions. - -We're requiring these copyright assignments, so that we'll easily be able to -include your contributions in official GNU documentation, such as the GNU Hurd -Reference Manual, etc. Send email to if there are -questions. - - - -[[!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]]."]]"""]] - -- cgit v1.2.3 From 8ea8555dc138ac0debecc0b6acde8e5cf209c8cc Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 30 Mar 2011 18:25:39 +0200 Subject: open_issues/system_initialization: New. --- open_issues/system_initialization.mdwn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 open_issues/system_initialization.mdwn diff --git a/open_issues/system_initialization.mdwn b/open_issues/system_initialization.mdwn new file mode 100644 index 00000000..9048b615 --- /dev/null +++ b/open_issues/system_initialization.mdwn @@ -0,0 +1,24 @@ +[[!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_hurd]] + +IRC, freenode, #hurd, 2011-03-30 + + init=/bin/sh hack doesn't work for GNU/Hurd ? + kilobug: I don't think you can override init on Hurd. the init + server is actually involved in bootstrapping part of the system core + at some point we discussed the possibility to reduce the Hurd init + server to *only* do that, and then pass on to standard sysv init... with + that it could actually work + +--- + + * [[systemd]], etc. -- cgit v1.2.3 From 7eb9388b786c2ec91bd1ebd3fd29e305b866bc54 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 30 Mar 2011 18:36:22 +0200 Subject: community/gsoc: It's the student application period. --- community/gsoc.mdwn | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index 45d3a31d..73a69b8f 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -14,22 +14,27 @@ License|/fdl]]."]]"""]] # 2011 We're in! The GNU Hurd project will again participate in the [Google Summer of -Code](http://socghop.appspot.com) under the [GNU -umbrella](http://www.gnu.org/software/soc-projects/). +Code](http://www.google-melange.com/gsoc/homepage/google/gsoc2011) under the +[GNU umbrella](http://www.gnu.org/software/soc-projects/). -On Monday, 2011-03-28 the *student application period* will -[begin](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2011/timeline), -the deadline is on Friday, 2011-04-08. That is plenty of time for discussing -your applications -- but please don't wait to the last minute! +As of Monday, 2011-03-28 it's the *student application period*. This will last +until [Friday, +2011-04-08](http://www.google-melange.com/gsoc/events/google/gsoc2011), which +is plenty of time for preparing and discussing your applications -- but please +don't wait to the last minute! ## Applying for a Task +We have a list of [[project_ideas]], and students are likewise encouraged to +submit their own project proposals. + We always ask students that want to apply for a task (in the course of the Google Summer of Code) to mind our distinct [[student_application_form]]. -We have a list of [[project_ideas]], and students are likewise encouraged to -submit their own project proposals. +Then, don't forget to visit +, and push the big +button for submitting your proposal. Please read up about [[contributing]] in general; and feel free to ask any questions you might have at one of our [[regular_IRC_meetings|IRC#regular_meetings]]. -- cgit v1.2.3 From 1880a809de4782b46b95eba939d36d8ee2c341fc Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 31 Mar 2011 00:22:59 +0200 Subject: community/gsoc/project_ideas: GCC's Google Go to Hurd port. --- community/gsoc/project_ideas.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 4f028e4f..bdf7a8d3 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -81,6 +81,10 @@ See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/H X.org for referring to their GSoC projects. Probabaly we should get rid of one of these pages (to avoid duplication). --> +Also, note that there is a task about [porting GCC's implementation of the +Google Go programming language to +GNU/Hurd](http://gcc.gnu.org/wiki/SummerOfCode#gccgo_hurd). + [[!inline pages="community/gsoc/project_ideas/language_bindings" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/virtualization" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/file_locking" show=0 feeds=no actions=yes]] -- cgit v1.2.3 From 73db7fb81514ed83da614f3ee3957ae56842e58f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 31 Mar 2011 00:55:33 +0200 Subject: public_hurd_boxen: Misc. --- public_hurd_boxen.mdwn | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index b075d4ac..dfb1f006 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -11,7 +11,9 @@ License|/fdl]]."]]"""]] [[!tag stable_URL]] -Here are some Hurd boxes that users have made available to the public: +There are GNU/Hurd boxes that we're offering shell accounts on. These are +generally available for everyone interested in [[contributing]], or just having +a look at a GNU/Hurd system. [[!table class="table_style_1" data=""" "Hoster","Name","Distribution","Machine Specs","Comments" @@ -23,10 +25,11 @@ Here are some Hurd boxes that users have made available to the public: "[[bddebian]]","goober","Debian GNU/Hurd","?" "[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" +"Debian","strauss","Debian GNU/Hurd",,"all Debian Developers have access without any special account setup procedure" """]] To request an account on the *[[bddebian]]* machines either contact -*bddebian* or *tschwinge* (other people might also be able to help) in [[IRC]] +*tschwinge* (other people might also be able to help) in [[IRC]] or send email to (please include your desired user name and public SSH key). Also use these contact addresses for requesting support with respect to software installations, etc. @@ -35,8 +38,10 @@ addresses for requesting support with respect to software installations, etc. For easy access, you should append your public SSH key(s) to `~/.ssh/authorized_keys` on the remote machine. -Also, add the following stanza to `~/.ssh/config` of the machine you're -connecting from: +Also, add the [[!toggle id=bddebian_ssh_config text="following stanza"]] to +`~/.ssh/config` file of the machine you're connecting from. + +[[!toggleable id=bddebian_ssh_config text=""" Host blubber.bddebian.com blubber HostName blubber.bddebian.com @@ -76,3 +81,5 @@ connecting from: The `CheckHostIP` statement is for not having to worry about the machines's IP addresses changing (due to being behind a dial-up connection). + +"""]] -- cgit v1.2.3 From 6f0d1cafe67a3b8874f68a25527033b27b2831b9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 31 Mar 2011 11:27:53 +0200 Subject: hurd/running/debian/qemu_image: New. More actively advertize the public Hurd boxen and the QEMU image. --- contributing.mdwn | 2 ++ hurd/running/debian.mdwn | 15 +++++++++++---- hurd/running/debian/qemu_image.mdwn | 23 +++++++++++++++++++++++ hurd/running/qemu.mdwn | 20 +++++++++++--------- index.mdwn | 5 +++++ public_hurd_boxen.mdwn | 5 ++++- 6 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 hurd/running/debian/qemu_image.mdwn diff --git a/contributing.mdwn b/contributing.mdwn index 223963c6..7d8d2a0e 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -61,6 +61,8 @@ things you're going to work on (and on your internet connection), this may be an easy way of getting used to Hurd systems. Installing in a virtual machine is another possibility, see the page about [[running_a_Hurd_system|hurd/running]] for the full story. +In particular, running a Debian GNU/Hurd [[QEMU image|hurd/running/QEMU]] may +be a viable alternative. Then you can either play around and eventually strive to do something useful or -- if you want -- [[ask_us|contact_us]] to assign something to you, depending diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index 97d35bd7..b3f53f36 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -1,25 +1,32 @@ [[!meta title="Debian GNU/Hurd"]] -### Debian Resources +# Debian Resources - Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) - Debian [[FAQ]] -- Frequently Asked Questions -### Installing +## QEMU Image + +[[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]] + + +# Installing - [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install) - [Upgrading K11 or K14 based systems to unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html) - [[After_install]] -- Do this to get networking, new console and X -### Contributing + +# Contributing - [[Porting]] -- Helping with porting packages * [[Patch_submission]] -- How to submit patches for build failures - [[Creating_image_tarball]] -### Additional Information + +# Additional Information - [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe diff --git a/hurd/running/debian/qemu_image.mdwn b/hurd/running/debian/qemu_image.mdwn new file mode 100644 index 00000000..9f828556 --- /dev/null +++ b/hurd/running/debian/qemu_image.mdwn @@ -0,0 +1,23 @@ +[[!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]]."]]"""]] + +There is a QEMU image with [[Debian GNU/Hurd|debian]] pre-installed available +as . + +Usage: + + $ wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz + $ tar -xz < debian-hurd.img.tar.gz + $ qemu -net nic,model=rtl8139 -net user debian-hurd-*.img + +Just in case you were wondering: the *root* password is *root*. + +[[!if test="destpage(hurd/running/qemu)" then="" else="For more detailed +instructions, please see the [[hurd/running/QEMU]] page."]] diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index 321ceadf..aea20ae8 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -14,15 +14,16 @@ This page discusses things for [[Unix]] systems, there is a separate page for # Readily Available Images -To try out the Hurd you can use the image of the Debian GNU/Hurd: +You can use the following images to give the GNU/Hurd a try. -* [Official Debian GNU/Hurd QEMU image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz) +## Debian GNU/Hurd -(!) Note that the following are unofficial images: they have been prepared by -volunteers and may not have been tested extensively. +[[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]] + +## Unofficial Images - +Note that the following images are unofficial ones: they have been prepared by +volunteers and may not have been tested extensively. * [Disk image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) with a short intro on translators. Just start it with 'qemu *disk_image.img*'. @@ -30,9 +31,10 @@ volunteers and may not have been tested extensively. with it, please have a look at [[its_wikipage|hurd/running/qemu/babhurd_image]]. And when you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]] -Also you can use qemu to easily try one of our [[Hurd_LiveCDs|hurd/running/live_cd/]]. +# Arch Hurd Live CD - +Also you can use QEMU to easily try one of the +[[Hurd_LiveCDs|hurd/running/live_cd/]]. # What is Needed to create a QEMU image @@ -103,7 +105,7 @@ First off you will need to create a disk image using `qemu-img`. I have set mine Next you will want to start up QEMU and begin the installation process. - $ qemu -m 512 -hda hd0.img -cdrom mini.iso -net nic,model=rtl8139 + $ qemu -m 512 -hda hd0.img -cdrom mini.iso -net nic,model=rtl8139 -net user Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. diff --git a/index.mdwn b/index.mdwn index 9feb44ec..2eb60d82 100644 --- a/index.mdwn +++ b/index.mdwn @@ -60,6 +60,11 @@ recommendations about how to contribute|contributing]]. See our [[source_repositories]] for the source code. +## Access to a GNU/Hurd System + +We provide accounts on our [[public_Hurd_boxen]], and there are also +[[hurd/running/QEMU]] images available. + # Getting Help diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index dfb1f006..33fe5cbc 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -15,6 +15,9 @@ There are GNU/Hurd boxes that we're offering shell accounts on. These are generally available for everyone interested in [[contributing]], or just having a look at a GNU/Hurd system. +An alternative to online shell access may be using a [[QEMU +image|hurd/running/qemu]]. + [[!table class="table_style_1" data=""" "Hoster","Name","Distribution","Machine Specs","Comments" "[[bddebian]]","blubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff; deactivated until needed again (apart from [[tschwinge]], only [[scolobb]] has an account, but is not active at the moment)" @@ -25,7 +28,7 @@ a look at a GNU/Hurd system. "[[bddebian]]","goober","Debian GNU/Hurd","?" "[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" -"Debian","strauss","Debian GNU/Hurd",,"all Debian Developers have access without any special account setup procedure" +"Debian","[strauss.debian.net](http://strauss.debian.net/ssh)","Debian GNU/Hurd",,"all Debian Developers have access" """]] To request an account on the *[[bddebian]]* machines either contact -- cgit v1.2.3 From e4e19053cc344c80cc648221caa069b7bbcb7885 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 31 Mar 2011 12:27:57 +0200 Subject: sidebar: Include Contributing, Public Hurd Boxen, and QEMU Images. --- sidebar.mdwn | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sidebar.mdwn b/sidebar.mdwn index 6dd2a35d..f398820a 100644 --- a/sidebar.mdwn +++ b/sidebar.mdwn @@ -24,10 +24,13 @@ applying for a GNU Hurd project -- details to be found on our --- * **[[Home|/index]]** * **[[Community]]** + * **[[Contributing]]** + * *[[Public_Hurd_Boxen]]* + * *[[QEMU Images|hurd/running/qemu]]* + * *[[Getting Help]]* + * *[[Open Issues]]* * **[[Documentation]]** * *[[FAQ]]* - * **[[Getting Help]]** - * **[[Open Issues]]** --- -- cgit v1.2.3 From 0c9afbdfacdac8b5bf395d9c685c5faf931f59d7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 1 Apr 2011 01:11:52 +0200 Subject: community/gsoc/project_ideas: Bold text for the external task descriptions. Otherwise, they're quite lost next to the headings of the internal task descriptions. --- community/gsoc/project_ideas.mdwn | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index bdf7a8d3..38355e70 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -74,16 +74,17 @@ After all, the purpose of GSoC is to introduce you to free software development before the end of the application process, with our help -- contact us, and we will assist you as well as we can. -See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/Hurd_Porting). +See also the list of **[Hurd-related X.org project +ideas](http://wiki.x.org/wiki/Hurd_Porting)**. -Also, note that there is a task about [porting GCC's implementation of the +Also, note that there is a task about **[porting GCC's implementation of the Google Go programming language to -GNU/Hurd](http://gcc.gnu.org/wiki/SummerOfCode#gccgo_hurd). +GNU/Hurd](http://gcc.gnu.org/wiki/SummerOfCode#gccgo_hurd)**. [[!inline pages="community/gsoc/project_ideas/language_bindings" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/virtualization" show=0 feeds=no actions=yes]] -- cgit v1.2.3 From 089dbeadf5b21eb84c6bdd08e87028000ef1ce96 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 1 Apr 2011 10:30:52 +0200 Subject: news/2011-04-01: New. --- news/2011-04-01.mdwn | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 news/2011-04-01.mdwn diff --git a/news/2011-04-01.mdwn b/news/2011-04-01.mdwn new file mode 100644 index 00000000..3c0c3869 --- /dev/null +++ b/news/2011-04-01.mdwn @@ -0,0 +1,44 @@ +[[!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]]."]]"""]] + +[[!meta date="2011-04-01 08:30 UTC"]] + +[[!meta title="2011-04-01: GNU/Hurd 0.401 is released!"]] + +We'd like to pass on these marvelous news from our Release Management +Team, headed by Release Manager Samuel Thibault: + +> Hello, +> +> There are rumors that Duke Nukem Forever will actually be released in +> Apr^WMa^WJune 2011, so there's no escape for the Hurd any more, we had +> to finish and release. There has been considerable progress lately, +> so it is with great pleasure that the Hurd maintainers team decided +> to release *version 0.401 of the GNU/Hurd Operating System*. As the +> version number and image size suggest, this is only a small preview +> of course, but we expect GNU/Hurd to be of production-quality within +> the third millenium, to be sure. +> +> A *LiveCD demo* is available on +> +> and can be trivially tried using +> `qemu -cdrom hurd-0.401.iso` +> +> We hope that you will appreciate its features and speed. +> +> Are you interested in contributing to the GNU Hurd project? Just +> request an shell account on one of our servers and get started. +> +> +> +> It is also worth noting that like in previous years, GNU/Hurd runs +> for the GSoC program, details can be found on +> +> -- cgit v1.2.3 From c030a7da9a849831e14538b8632f9ee439a25d3c Mon Sep 17 00:00:00 2001 From: "http://leandro.myopenid.com/" Date: Sun, 3 Apr 2011 16:28:17 +0000 Subject: Typogr. --- hurd/running/debian.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index b3f53f36..67b75b67 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -4,7 +4,7 @@ - Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) -- Debian [[FAQ]] -- Frequently Asked Questions +- Debian [[FAQ]] — Frequently Asked Questions ## QEMU Image @@ -16,7 +16,7 @@ - [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install) - [Upgrading K11 or K14 based systems to unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html) -- [[After_install]] -- Do this to get networking, new console and X +- [[After_install]] — Do this to get networking, new console and X # Contributing -- cgit v1.2.3 From b38cbd56000c6704324a12093193f3506bc05d6b Mon Sep 17 00:00:00 2001 From: "http://leandro.myopenid.com/" Date: Sun, 3 Apr 2011 16:32:56 +0000 Subject: Typogr. --- hurd/running/debian.mdwn | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index 67b75b67..0025a61f 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -1,35 +1,24 @@ [[!meta title="Debian GNU/Hurd"]] # Debian Resources - -- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) - +- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd] (http://www.debian.org/ports/hurd/) - Debian [[FAQ]] — Frequently Asked Questions ## QEMU Image - [[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]] - # Installing - -- [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install) - - [Upgrading K11 or K14 based systems to - unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html) +- [Installation Instructions] (http://www.debian.org/ports/hurd/hurd-install) + - [Upgrading K11 or K14 based systems to unstable] (http://lists.debian.org/debian-hurd/2007/09/msg00007.html) - [[After_install]] — Do this to get networking, new console and X - # Contributing - -- [[Porting]] -- Helping with porting packages - * [[Patch_submission]] -- How to submit patches for build failures +- [[Porting]] — Helping with porting packages + * [[Patch_submission]] — How to submit patches for build failures - [[Creating_image_tarball]] - # Additional Information - -- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) - *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe +- [Presentation] (http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) + *Debian GNU/Hurd*, [[MichaelBanck]], LinuxTag 2004 Karlsruhe - [[Status]] -- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386) - +- [Archive Qualification] (http://wiki.debian.org/ArchiveQualification/hurd-i386) -- cgit v1.2.3 From 5a840c78a8bdadf0705d24943b914806c61ad573 Mon Sep 17 00:00:00 2001 From: "http://leandro.myopenid.com/" Date: Sun, 3 Apr 2011 16:45:03 +0000 Subject: Markup --- hurd/running/debian.mdwn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn index 0025a61f..fcd4d49b 100644 --- a/hurd/running/debian.mdwn +++ b/hurd/running/debian.mdwn @@ -1,15 +1,15 @@ [[!meta title="Debian GNU/Hurd"]] # Debian Resources -- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd] (http://www.debian.org/ports/hurd/) +- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/) - Debian [[FAQ]] — Frequently Asked Questions ## QEMU Image [[!inline pages=hurd/running/debian/qemu_image raw=yes feeds=no]] # Installing -- [Installation Instructions] (http://www.debian.org/ports/hurd/hurd-install) - - [Upgrading K11 or K14 based systems to unstable] (http://lists.debian.org/debian-hurd/2007/09/msg00007.html) +- [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install) + - [Upgrading K11 or K14 based systems to unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html) - [[After_install]] — Do this to get networking, new console and X # Contributing @@ -18,7 +18,7 @@ - [[Creating_image_tarball]] # Additional Information -- [Presentation] (http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) +- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/) *Debian GNU/Hurd*, [[MichaelBanck]], LinuxTag 2004 Karlsruhe - [[Status]] -- [Archive Qualification] (http://wiki.debian.org/ArchiveQualification/hurd-i386) +- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386) -- cgit v1.2.3 From 636b547be5a607e353c3445ebabcbd780dad9de9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 3 Apr 2011 22:04:29 +0200 Subject: microkernel/mach/gnumach/ports/xen/discussion: New. --- microkernel/mach/gnumach/ports/xen/discussion.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 microkernel/mach/gnumach/ports/xen/discussion.mdwn diff --git a/microkernel/mach/gnumach/ports/xen/discussion.mdwn b/microkernel/mach/gnumach/ports/xen/discussion.mdwn new file mode 100644 index 00000000..2980e3b2 --- /dev/null +++ b/microkernel/mach/gnumach/ports/xen/discussion.mdwn @@ -0,0 +1,14 @@ +[[!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]] + +Stuff from should be merged into +these pages here. -- cgit v1.2.3