[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 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 have been rendered on a GNU/Hurd system. 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.