[[!meta copyright="Copyright © 2006, 2007, 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]]."]]"""]]
So, you are interested in contributing to the GNU Hurd project?
Welcome! Every single contribution is very much encouraged!
There are various ways of contributing, read on about contributing to...
[[!toc levels=3]]
If someone of you is lurking around here and would like to contribute, but
feels she / he could do so better under formal mentoring: please speak up at
one of the [[regular_IRC_meetings|IRC#regular_meetings]]!
Generally we also have a list of [[open_issues]] and one for
[[project_ideas|community/gsoc/project_ideas]] - the latter written for the
Google Summer of Code.
# Documentation
## These Web Pages
Please read about [[how_to_contribute_to_these_web_pages|web_pages]].
# The System Itself
There are essential two kinds of Hurd system designs.
## Hurd on Mach
For one there's the implementation of the *[[Hurd]] running on the
[[GNU_Mach_microkernel|microkernel/mach/gnumach]]*. This is what is commonly
meant when people are talking about GNU/Hurd systems.
This system has mostly been designed and implemented
[[in the '90s|history]]. It works and is usable.
For example, these web pages are rendered on a [GNU/Hurd
system](http://www.bddebian.com/cgi-bin/uptime).
You can try it out for yourself: for getting access, installing
[[Debian_GNU/Hurd|hurd/running/debian]] will probably be the easiest and most
feature-complete solution. If you don't have spare hardware to use for doing
so, you can also get a
[[shell_account_on_a_public_Hurd_machine|public_hurd_boxen]]. Depending on the
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.
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
on the skills you have and the resources you intend to invest.
Please spend some time with thinking about the items in this [[questionnaire]].
Before you can significantly contribute, take some time to learn about the
system, e.g., [[microkernels_for_beginners|microkernel/for_beginners]]. Until
you can do the basic exercises listed there, you won't be able to significantly
contribute to the Hurd.
For more reading resources, please see these web pages, for example,
[[Hurd_documentation|hurd/documentation]] and
[[Mach_documentation|microkernel/mach/documentation]] for links to a bunch of
documents.
### Porting Packages
Debian is currently the Hurd distribution of choice among Hurd users and
developers.
Here is a
[[list_of_Debian_packages_that_need_porting|hurd/running/debian/porting]].
You can also just [[install_Debian_GNU/Hurd|hurd/running/debian]] and find what
doesn't work or suit you and try to improve that.
### Open Issues
Here is a list of [[open_issues]].
## Hurd on a modern microkernel
Developers [[have_identified|hurd/critique]] a number of problem with the *Hurd on
Mach* system. Problems, that can not easily be fixed by bug-fixing the
existing code base, but which require design changes -- deep going ones
actually.
As such systems (as the desired one) are not in common use, but are -- if at
all -- research projects, this new *Hurd on a modern microkernel* project
itself is more a research project than a *sit down and implement/code/hack*
project.
If you're interested in contributing in this area, knowing the *Hurd on Mach*
system nevertheless is a prerequisite. At least have a deep look at the
documentation pointers given in the previous section. Also read through the
[[HurdNG|hurd/ng]] section.
Please send email to the [[mailing lists/l4-hurd]] mailing list for discussing
this post-Mach system design.