/!\ Obsolete /!\

This is no longer valid as a Google Summer of Code project.

The Hurd presently has no sound support. Fixing this, GNU Savannah task #5485, requires two steps: the first is to port some other kernel's drivers to GNU Mach so we can get access to actual sound hardware. The second is to implement a userspace server (translator), that implements an interface on top of the kernel device that can be used by applications -- probably OSS or maybe ALSA.

Completing this task requires porting at least one driver (e.g. from Linux) for a popular piece of sound hardware, and the basic userspace server. For the driver part, previous experience with programming kernel drivers is strongly advisable. The userspace part requires some knowledge about programming Hurd translators, but shouldn't be too hard.

Once the basic support is working, it's up to the student to use the remaining time for porting more drivers, or implementing a more sophisticated userspace infrastructure. The latter requires good understanding of the Hurd philosophy, to come up with an appropriate design.

Another option would be to evaluate whether a driver that is completely running in user-space is feasible.

Exercise: This project requires kernel (driver framework) hacking as well as some Hurd server hacking; so the exercise should involve either of these, or even both. You could for example port some newer driver to run in the existing framework (see the device driver project description), or try to make some fix(es) to the unfinished random device implementation created by Michael Casadevall.