summaryrefslogtreecommitdiff
path: root/contributing.mdwn
blob: dc7fcc89aae56b87a0d4024de3d6afe558826533 (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
[[!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 
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 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]].


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