summaryrefslogtreecommitdiff
path: root/contributing.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'contributing.mdwn')
-rw-r--r--contributing.mdwn133
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!