diff options
Diffstat (limited to 'contributing.mdwn')
-rw-r--r-- | contributing.mdwn | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/contributing.mdwn b/contributing.mdwn new file mode 100644 index 00000000..5d68f4ce --- /dev/null +++ b/contributing.mdwn @@ -0,0 +1,133 @@ +[[!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. + +<a name="hurd_on_mach"> </a> +## 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]]. + + +<a name="hurd_on_modern_microkernel"> </a> +## 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. + + +# Final Words -- Difficulties + +Please note that doing substantial contributions to a project as big and as +encompassing as the GNU Hurd is not a trivial task. For working on the GNU +Hurd's inner guts and getting useful work done, you have to plan for a +many-months learning experience which will need sufficient self-motivation. +Working on an advanced operating system kernel isn't something you can do in a +few free minutes -- even less so without any previous kernel hacking +experience. + +Likewise, the Linux kernel maintainers are stating the exactly same +difficulties, which is well presented by Jonathan Corbet in his 2010 Linux +Kernel Summit report for the opening sessions about [*welcoming of +newcomers*](http://lwn.net/Articles/412639/). + +But of course, none of this is meant to be dismissive, so just [[start +using|hurd/running]] the GNU Hurd, and either notice yourself what's not +working as expected, or have a look at one of the [[Open Issues]], and we shall +see if you'll evolve to be the next core Hurd hacker! |