[[!meta copyright="Copyright © 2008, 2009 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]]."]]"""]]

The GNU Hurd project has successfully participated in the 
[Google Summer of Code 2008](http://code.google.com/soc/2008/hurd/about.html)!

All in all we had five students working on a diverse selection of five projects
from our [[ideas_list|gsoc/project_ideas]], and the students as well as the mentors 
did a great job!

# Projects

* [[Sergiu_Ivanov|scolobb]] 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 [[hurd/translator/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|zhengda]] 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|flaviocruz]] 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](http://0xab.com) 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|madhusudancs]] 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#regular_meetings]] page for details.

Minutes from some of the meetings: [[2008/minutes-2008-04-25]],
[[2008/minutes-2008-05-02]], [[2008/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.