summaryrefslogtreecommitdiff
path: root/contributing.mdwn
blob: f21a6f32b5fda362f4cb13f3b8a37b86a13a32b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
[[meta copyright="Copyright © 2006, 2007, 2008 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]]


# 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
[[microkernel/mach/GNU_Mach]] microkernel*.  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](http://www.gnu.org/software/hurd/history.html).  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 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, and also
<http://www.gnu.org/software/hurd/devel.html>,
<http://www.gnu.org/software/hurd/docs.html> for links to a bunch of documents,
and <http://www.gnu.org/software/hurd/> in general.

### 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: GNU Hurd

Here is a [[list_of_open_issues|hurd/Open_Issues]] for the [[GNU_Hurd|hurd]].

### Open Issues: GNU Mach

Here is a [[list_of_open_issues|microkernel/mach/gnu_mach/Open_Issues]] for
[[microkernel/mach/GNU_Mach]].

### Open Issues: GNU MIG

Here is a [[list_of_open_issues|microkernel/mach/mig/Open_Issues]] for
[[GNU_MIG|microkernel/mach/mig]].


<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.