The GNU Hurd project has successfully participated in the Google Summer of Code 2008!

All in all we had five students working on a diverse selection of five projects from our ideas list, and the students as well as the mentors did a great job!


  • Sergiu Ivanov worked on namespace-based translator selection. Although he wasn't an official (sponsored) GSoC student, he worked on his project quite as steady as the other students (except for a two week vacation). The project however was hampered by various misunderstandings, wrong assumptions, and several major redesigns during the course of the work -- which is probably more our fault than the student's. In the end, though, he completed nsmux (the main namespace proxy handling the magic filename lookups, running dynamic translators on demand); he still works on finishing the translator stack filtering necessary to implement some of the desired functionality (accessing files while skipping existing translators).

  • Zheng Da worked on network virtualization and some related topics. In spite of many open design question in the beginning, he did a lot of good work -- finishing not only the ethernet multiplexer and filter translators, which form the core of his project, but also a glibc patch to allow overriding the standard socket servers with environment variables; the devnode translator and a pfinet patch to allow accessing network devices through device files; support for setting the network device in promiscuous mode in gnumach; a pfinet patch to use BPF for the packet filtering instead of the old Mach packet filters, and also to set a proper filter rule that really only passes the required packages to pfinet; a patch for the subhurd boot program to allow giving arbitrary virtual devices to the subhurd; and a proxy for the proc server, which allows running unmodified programs with a pseudo device master port instead of the real one -- providing some of the subhurd functionality without having to start a complete new system instance. He is still working on fixing some remaining issues, and on allowing subhurds to be run by normal users.

  • Flavio Cruz was working on Lisp bindings for the Hurd interfaces, and did a great job: Not only did he implement bindings for all low-level interfaces as well as higher-level libraries for easy creation of translators and other hurdish programs, but also a whole bunch of sample translators based on these bindings, some of them quite useful on their own account. He also fixed a few bugs in the Hurd he found along the way. Presently he is doing some further improvements, like additional abstractions and more sample translators.

  • Andrei Barbu was working on porting a kernel instrumentation framework like dtrace or SystemTap. He implemented the necessary kernel infrastructure (and some nice general improvements along the way), making it possible to create tracing programs by hand; however, only at the end of the summer he realized that SystemTap is really extremely Linux-specific (while dtrace was ruled out already at the setout because of licensing problems), so there is no nice frontend yet. Unfortunately he was not able to continue work beyond the official deadline because of his PhD.

  • Madhusudan.C.S was working on a new procfs implementation, to allow running existing programs based on Linux procfs out of the box. He managed to implement all the necessary information bits, so the most important procfs programs now work; and also fixed the procps program suite to actually build on the Hurd. There are still some major bugs left, though. Aside from fixing the remaining bugs, he now works on adding some more information bits that are nontrivial to implement, and on fixing libgtop to work for us as well.

IRC meetings

Since the selection of the students on we have had regular, weekly GSoC IRC meetings, see the IRC page for details.

Minutes from some of the meetings: minutes-2008-04-25, minutes-2008-05-02, minutes-2008-05-16

We decided to keep up the meetings after the end of official GSoC, so things can be properly wrapped up for upstream submission; but also because the students want to continue discussing progress with their ongoing work, problems, future directions etc.