diff options
-rw-r--r-- | community/gsoc.mdwn | 23 | ||||
-rw-r--r-- | community/gsoc/2012/virt/proposal.mdwn | 95 | ||||
-rw-r--r-- | community/gsoc/project_ideas.mdwn | 1 | ||||
-rw-r--r-- | hurd/running/debian/qemu_image.mdwn | 4 | ||||
-rw-r--r-- | hurd/running/gnu/create_an_image.mdwn | 11 | ||||
-rw-r--r-- | hurd/running/live_cd.mdwn | 4 | ||||
-rw-r--r-- | hurd/running/qemu.mdwn | 9 | ||||
-rw-r--r-- | hurd/running/qemu/babhurd_image.mdwn | 4 | ||||
-rw-r--r-- | hurd/subhurd.mdwn | 2 | ||||
-rw-r--r-- | news/2010-04-30.mdwn | 2 | ||||
-rw-r--r-- | open_issues/fork_deadlock.mdwn | 65 | ||||
-rw-r--r-- | open_issues/glibc.mdwn | 17 | ||||
-rw-r--r-- | unsorted/MakeImage.mdwn | 2 |
13 files changed, 198 insertions, 41 deletions
diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index 6eece956..efd29841 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -57,13 +57,27 @@ subprojects. --> -# Applying for a Task +Applications for 2012 are closed. -<!-- +# Accepted projects -Applications for 2011 are closed. +## Disk I/O Performance Tuning ---> +by Maksym Planeta + +See the project's +[public page](http://www.google-melange.com/gsoc/project/google/gsoc2012/mcsim/46002). + +## Virtualization Using Hurd Mechanisms + +by Pierre Thierry + +See the project's +[public page](http://www.google-melange.com/gsoc/project/google/gsoc2012/nowhereman/36001) +and [[complete proposal|gsoc/2012/virt/proposal]]. + + +# Possible projects We have a list of [[project_ideas]], and students are likewise encouraged to submit their own project proposals. Please follow our @@ -86,7 +100,6 @@ with Hurd development, even outside of the GSoC context. Please don't hesitate to contact us regarding mentoring even if it's not GSoC time at the moment, or if you aren't a student anyway. - # History In 2006 and [[2007]], we participated in GSoC under the umbrella of the GNU diff --git a/community/gsoc/2012/virt/proposal.mdwn b/community/gsoc/2012/virt/proposal.mdwn new file mode 100644 index 00000000..d89f45d5 --- /dev/null +++ b/community/gsoc/2012/virt/proposal.mdwn @@ -0,0 +1,95 @@ +[[!meta title="Original proposal"]] + +*This is the proposal as it has been submitted to Google Summer of +Code.* + +# The name of the project + +Virtualization Using Hurd Mechanisms + +# Summary + +The goal is to create tools that let a user create a set of servers +that implement a Hurd environment and the necessary resources, with +the possibility of relying on existing servers in the parent Hurd for +some of them, instead of creating them. + +# Benefits + +This project will permit to create isolated systems but with far more +flexibility than traditional virtualization tools, because the degree +of isolation can be changed and possibly not only at creation time, +and communication and sharing of subsystems can be arranged between +isolated systems. + +# Deliverables + +D1 — User stories for the toolset, that will later serve as examples +for the documentation + +D2 — Exhaustive but concise documentation of the set of needed servers +making a working Hurd system (as much for me as for future users of +the tool, building and linking to existing Hurd documentation) + +D3 — Low-level tool to create a working Hurd environment (possibly +with strong limitations on the shape of the resources used by the +environment, most probably on the underlying filesystem) + +D4 — Fake or noop servers for the documented set of needed servers, to +be provided instead of working ones, where a feature is to be denied +to a Hurd environnement + +D5 — Proxy servers, where desirable, to provide access to servers +outside the environment (in ocaps terminology, caretakers) + +D6 — Extension of the low-level tool from D3 to remove its +unreasonable limitations + +D7 — High-level tools to easily create environments and run programs +in them (akin respectively to debootstrap and schroot) + +D8 — If possible, extensions to the D5 and D7 tools to enable dynamic +modifications of the features and authority granted to environments +and creation of multiple interconnected environments + +# Plan + +I intend to develop using the Scrum method, with sprints of two weeks, +which mean that each two weeks, I will present at least one new +working feature, working incrementally towards the full deliverable. I +will also push my code at least once a day to a public Git hosting, +including topic branches, so my progress can be followed easily. + +I intend to start from crosshurd and see how I can hook in its process +of creation to allow being provided alternatives. Depending on how +crosshurd is malleable to those changes, a modified crosshurd will +either be a learning-stage prototype or the base of the +implementation. + +To reuse Git terminology, once plumbing tools (i.e. tools that take +detailed invocation information for each server) are working fine, +I'll move on to porcelain tools, the final UI (i.e. tools that provide +sensible default options, aliases mechanisms, etc.). + +# Communication + +I'm usually easy to reach through both email and jabber, so those and +IRC will be my main way to inform my mentor and ask questions. I'll +setup an ikiwiki to have a summary of the exchanges and the temporary +documentation of the project (i.e. documentation that doesn't fit with +the code yet). + +# Qualification + +Thansk to or because of my participation to the Hurd mailing lists, +I've been utterly contaminated by the concept of POLA a few years +ago. Since then, I've been longing, almost in a painful way, for a +object-capability flavour of Debian. Having to deal in my previous day +jobs with virtualization tools like Xen and VMWare when I knew there +would be no need for paravirtualization or emulation to isolate +systems in an object-capability OS only made it worst. + +Now most of the code I produce naturally becomes capability oriented, +even if my underlying platform, programming language or OS, doesn't +provide true capabilities. And creating true POLA systems and making +it possible for others to benefit from POLA is now one of my dreams. diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 5d42b5c6..8ce10ffa 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -98,7 +98,6 @@ other: language_bindings, gnat, gccgo, perl_python. --> [[!inline pages="community/gsoc/project_ideas/secure_chroot" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/package_manager" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/download_backends" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/libgtop" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/maxpath" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/gnat" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/gccgo" show=0 feeds=no actions=yes]] diff --git a/hurd/running/debian/qemu_image.mdwn b/hurd/running/debian/qemu_image.mdwn index 809bf7b1..19b371c1 100644 --- a/hurd/running/debian/qemu_image.mdwn +++ b/hurd/running/debian/qemu_image.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2012 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 @@ -15,7 +15,7 @@ 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 -hda debian-hurd-*.img + $ qemu -m 512 -net nic,model=rtl8139 -net user -hda debian-hurd-*.img Just in case you were wondering: the *root* password is *root*. diff --git a/hurd/running/gnu/create_an_image.mdwn b/hurd/running/gnu/create_an_image.mdwn index c7a97a4e..8784a826 100644 --- a/hurd/running/gnu/create_an_image.mdwn +++ b/hurd/running/gnu/create_an_image.mdwn @@ -1,12 +1,13 @@ -[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2012 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]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] Creating a bootable qemu image from a root filesystem and bootloader @@ -17,7 +18,7 @@ Creating a bootable qemu image from a root filesystem and bootloader 2. Use a live CD (better to have a lighter OS like system rescue CD to make the process faster) and the image created to boot. - qemu -cdrom /dev/cdrom -hda <imagename.img> -boot d + qemu -m 512 -cdrom /dev/cdrom -hda <imagename.img> -boot d 3. Once system is booted use a partition editing tool (like fdisk, cfdisk, parted, gparted, qtparted ...) to partition the image. @@ -64,7 +65,7 @@ Creating a bootable qemu image from a root filesystem and bootloader 11. Run qemu to boot into your brand new system - qemu -hda <hard disk image.img> -fda grub.img -boot a + qemu -m 512 -hda <hard disk image.img> -fda grub.img -boot a Happy Hacking !! diff --git a/hurd/running/live_cd.mdwn b/hurd/running/live_cd.mdwn index c9360594..1eb9b8e0 100644 --- a/hurd/running/live_cd.mdwn +++ b/hurd/running/live_cd.mdwn @@ -8,7 +8,7 @@ MiB: <http://www.superunprivileged.org/hurd/tiny-cd/> Use it like this: - $ qemu -cdrom hurd-tiny-cd-20060722.iso + $ qemu -m 512 -cdrom hurd-tiny-cd-20060722.iso A more recent Live CD can be found at <http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz>. @@ -16,7 +16,7 @@ It can be run with qemu via $ wget http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz $ xz -d hurd-live-install-1273300101.iso.xz - $ qemu -cdrom hurd-live-install-1273300101.iso + $ qemu -m 512 -cdrom hurd-live-install-1273300101.iso These [[!wikipedia LiveCD]]s should be useful for those who want to try out the Hurd before they commit to installing it on their hard disks. In addition to diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index fcf58d8a..b64c576f 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -28,7 +28,8 @@ 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*'. + with a short intro on translators. Just start it with `qemu -m 512 + disk_image.img`. It should work without any of the configuration below. If you want to know what you can do 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]] @@ -272,7 +273,7 @@ This is the recommended way to work with a Command Line Interface (CLI) since al a) with ssh (assuming you have installed openssh-server) - $ kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hd0.img & + $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -hda hd0.img & Logging in to the running Hurd: @@ -289,7 +290,7 @@ Copying files: 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 & + $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5556-:23 -hda hurd-install.qemu & Logging in to the running Hurd: @@ -330,7 +331,7 @@ Now it is time to start-up your QEMU Hurd system and get networking going in the **Important:** Remember you may need to use the `-M isapc` or `-isa` flag if using an older version of the gnumach package. - $ qemu -hda hd0.img -cdrom debian-K9-hurd-i386-CD1.iso -fda floppy.img -boot a -net nic -net tap + $ qemu -m 512 -hda hd0.img -cdrom debian-K9-hurd-i386-CD1.iso -fda floppy.img -boot a -net nic -net tap Once you have logged in as `root` run the `pfinet` translator with values that apply to your network. Think of your QEMU client as another computer in your network. diff --git a/hurd/running/qemu/babhurd_image.mdwn b/hurd/running/qemu/babhurd_image.mdwn index c0952fcf..855e8f51 100644 --- a/hurd/running/qemu/babhurd_image.mdwn +++ b/hurd/running/qemu/babhurd_image.mdwn @@ -5,8 +5,8 @@ What this little Hurd image can do This is the README file accompanying a [disk\_image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) for -[[running_the_GNU/Hurd_via_qemu|hurd/running/qemu]]. To run the disk image, just use *'qemu -disk_image.img'*. +[[running the GNU/Hurd via qemu|hurd/running/qemu]]. To run the disk image, +just use `qemu -m 512 disk_image.img`. You can find the custom *.bashrc* used to tell the user about it as well as this text itself in the Mercurial repository [hurd_intro](http://bitbucket.org/ArneBab/hurd_intro). diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index b8e595d3..f2117ead 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -31,7 +31,7 @@ flexible.) Vice versa, it is also possible to use a subhurd to debug the To run a subhurd, you need an additional partition with an installed Hurd system. In principle, you can also use your main partition in read-only mode; but this obviously will create severe limitations. Usually, you will want a -complete independant system. +complete independent system. The system for the subhurd is a normal Hurd installation, which could just as well run standalone. You can use any of the various possible installation diff --git a/news/2010-04-30.mdwn b/news/2010-04-30.mdwn index da4c0183..0b50122d 100644 --- a/news/2010-04-30.mdwn +++ b/news/2010-04-30.mdwn @@ -43,7 +43,7 @@ else="[[!paste id=full_news]]"]] > Mainly thanks to *Jose Luis Alarcon Sanchez*, we now have a [new QEMU > image](http://lists.debian.org/debian-hurd/2010/04/msg00098.html). It can be -> run with a simple `qemu -hda debian-hurd-17042010-qemu.img`. +> run with a simple `qemu -m 512 -hda debian-hurd-17042010-qemu.img`. > *Thomas Schwinge* updated [our glibc maintenance > repository](http://git.savannah.gnu.org/cgit/hurd/glibc.git/?h=tschwinge/Roger_Whittaker) diff --git a/open_issues/fork_deadlock.mdwn b/open_issues/fork_deadlock.mdwn new file mode 100644 index 00000000..6b90aa0a --- /dev/null +++ b/open_issues/fork_deadlock.mdwn @@ -0,0 +1,65 @@ +[[!meta copyright="Copyright © 2012 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_glibc]] + +This started appearing when Jérémie's [[glibc]] signal patches were integrated: +very sporadically, but still now and then, `fork` will hang, as follows, and +typically in `/bin/sh`. + +From a `libtool` invocation: + + #0 0x0107b13c in swtch_pri () at /build/eglibc-Q9jlik/eglibc-2.13/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 + No locals. + #1 0x0107c9c4 in __spin_lock_solid (lock=0x125080c) at spin-solid.c:27 + No locals. + #2 0x01091427 in __spin_lock (__lock=<optimized out>) at ../mach/lock-intern.h:55 + No locals. + #3 _hurd_sigstate_lock (ss=0x1250008) at hurdsig.c:172 + No locals. + #4 0x011261ec in _hurd_critical_section_unlock (our_lock=<optimized out>) at ../hurd/hurd/signal.h:235 + No locals. + #5 __fork () at ../sysdeps/mach/hurd/fork.c:706 + env = {{__jmpbuf = {18784244, 19197896, 1, 16925832, 16925460, 17980399}, __mask_was_saved = 0, __saved_mask = 33}} + pid = 0 + err = <optimized out> + __PRETTY_FUNCTION__ = "__fork" + ss = 0x1250008 + threads = 0x0 + nthreads = 0 + stopped = 1 + i = 6 + [...] + + +Another one in `dash`: + + #0 0x0105927c in swtch_pri () at /media/erich/home/thomas/tmp/glibc/debian/eglibc-2.13/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 + No locals. + #1 0x0105ac44 in __spin_lock_solid (lock=0x123580c) at spin-solid.c:27 + No locals. + #2 0x010701c7 in __spin_lock (__lock=<optimized out>) at ../mach/lock-intern.h:55 + No locals. + #3 _hurd_sigstate_lock (ss=0x1235008) at hurdsig.c:172 + No locals. + #4 0x011048f0 in _hurd_critical_section_unlock (our_lock=0x1235008) at ../hurd/hurd/signal.h:235 + ss = 0x1235008 + pending = <optimized out> + #5 __fork () at ../sysdeps/mach/hurd/fork.c:706 + env = {{__jmpbuf = {18780148, 19087304, 134621988, 0, 16938700, 17842902}, __mask_was_saved = 0, __saved_mask = 4294967295}} + pid = 0 + err = 0 + __PRETTY_FUNCTION__ = "__fork" + ss = 0x1235008 + threads = 0x0 + nthreads = 0 + stopped = 1 + i = 6 + [...] diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index 26fa6012..6c52cc7f 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -39,29 +39,12 @@ git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc ..sourcewa Last reviewed up to the [[Git mirror's d40c5d54cb551acba4ef1617464760c5b3d41a14 (2012-02-28) sources|source_repositories/glibc]]. - * t/dup3 - - [[tschwinge]] is not convinced that - 22542dcc89805af8d9bd9209129259d2737372b5 (and then also - ff3f3a789ba08b656dbaa3901091b6410bb883f8) are correct. - - * 94b7cc3711b0b74c1d3ae18b9a2e019e51a8e0bf -- dup3 changes; relevant for - `t/dup3`: hidden def. ed690b2f24bbc4d9c541fc81a7c67e6dc5678a96 -- why - not for dup3, too? Because it is a syscall (that is always inlined)? - * `t/hurdsig-fixes` hurdsig.c: In function '_hurd_internal_post_signal': hurdsig.c:1188:26: warning: 'pending' may be used uninitialized in this function [-Wmaybe-uninitialized] hurdsig.c:1168:12: note: 'pending' was declared here - * `t/init-first.c` - - Follow up here: [[!message-id "20070722171859.GN25744@fencepost.gnu.org"]] - or [[!message-id "87mxe4kwws.fsf@gnu.org"]]. Close [[!GNU_Savannah_bug - 17647]]. Debian: [[!message-id "E1Qup1U-0006Zc-39@vasks.debian.org"]] - (part of Ludo's patch; the part that is not harmful to GCC 4.4). - * `t/kernel-features.h_includes` Before running `tg update`, review for additional changes: diff --git a/unsorted/MakeImage.mdwn b/unsorted/MakeImage.mdwn index 95b928c4..b3485771 100644 --- a/unsorted/MakeImage.mdwn +++ b/unsorted/MakeImage.mdwn @@ -53,7 +53,7 @@ I use this for testing OSKit... ## <a name="Booting_Qemu"> Booting Qemu </a> - qemu -user-net -isa -boot d -cdrom grub.iso -hda gnu.img + qemu -m 512 -user-net -isa -boot d -cdrom grub.iso -hda gnu.img The switch `-isa` is for current gnumach.gz on hda. |