summaryrefslogtreecommitdiff
path: root/community/gsoc/organization_application.mdwn
blob: 8e672af1ba5eb28a3102136ee07b5de5180b26b5 (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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
[[!meta copyright="Copyright © 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]]."]]"""]]

* Organization Name:

GNU Hurd

* Description:

The mission of the Hurd project is to create a general-purpose kernel suitable
for the [GNU operating system](http://gnu.org), which is viable for everyday
use, and gives users and programs as much control over their computing
environment as possible.

In traditional operating systems, most system functionality is provided by the
kernel, and thus cannot be easily modified. The Hurd on the other hand --
following the GNU spirit of giving users more control over the software they
use -- implements a unique design, which makes it feasible to change almost
everything, down to the core features of the system.

While on other systems, such changes would require a lot of effort and special
privileges to rebuild the system core, with the Hurd this is not necessary: the
extensible architecture enables users (or applications) to simply modify their
local system environment at any time, while leaving the rest of the system in
place.

The most obvious example is the completely decentralized VFS mechanism: it can
be extended in almost any imaginable way, simply by setting up suitable server
processes (translators). Not only does this empower users, but also it helps
application development: desktop environments such as GNOME for example, when
making use of these possibilities, wouldn't need to create their own VFS
mechanism -- they simply could extend the system VFS to suit their needs.

One major element of the design which enables this extensibility, is the use of
a true multiserver microkernel architecture. The Hurd is quite unique in being
the only general-purpose multiserver microkernel system in development today,
that is nearly ready for everyday use, and offering almost perfect UNIX
compatibility. (About 65% of all packages in the Debian repository are
available for the Hurd.) The "general-purpose" and "everyday use" bits are
decisive here: all other existing true microkernel systems are either research
projects not nearly complete enough for actual use; or limited to embedded
systems and other special purposes; or both.

Marcus Brinkmann and Neal Walfield, while working on improvements to the Hurd
design, pushed at the forefront of microkernel operating system research. They
worked with the most distinguished researchers in this field from the
[L4](http://l4hq.org/) and
[EROS](http://www.eros-os.org/eros.html)/[Coyotos](http://www.coyotos.org/)
microkernel operating system groups, and published a couple of [research
papers](http://walfield.org/) as well in this process.

* Home Page:

http://hurd.gnu.org

* Main Organization License:

GNU General Public License (GPL)

* Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?

The primary goal of our participation is of course to find and introduce new long-term contributors
to the Hurd. We are trying to optimise for this in our student selection
process, our mentoring approach, and our choice of project ideas.

The mentor-student setup, together with the period of focused work during the
summer session, also offer a unique opportunity for kick-starting innovative
new projects apart from mainline development, which are hard to fit in among
the normal day-to-day development work. This is particularily important for the
Hurd, as innovative uses are crucial to show the benefits of the unique
architecture. Several such projects came into being through the GSoC program
over the past years.

Last but not least, GSoC participation always yields a lot of valuable input from new people, and helps
spreading technical and other knowledge about the Hurd among actual and
potential contributors. It has a very positive effect on
our community -- new impulses, increased communication, etc.

* Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

In 2006 and 2007,
we participated under the umbrella of the GNU project, getting one slot each
year.

In 2008 we participated as an organisation on our own for the first time. This
turned out extremely beneficial: with the better visibility, we got a lot
more applications (more than 20), mostly of good or excellent quality.

In 2009, we were rejected as an organisation, so we participated under the GNU
umbrella again.

While the 2006 student disappeared midway, in all the later years all of our
students were successful -- even including one who worked on his project in
spite of not getting an official slot. Half of them are regular Hurd contributors now.

Selecting the most promising students, as well as suitable mentors, turned out
to be the most tricky part of GSoC participation -- but we learned our lesson
after the first failure: we didn't have any students that didn't meet our
expectations since then, and we also believe our mentoring is exceptionally
good now -- one project that was in serious trouble, turned out well after all,
due to effective mentor intervention.

* If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006.

2008: 4/4

(+1 inofficial in 2008)
(under GNU umbrella: 2006: 0/1; 2007: 1/1; 2009: 1/1)

* If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

--

* What is the URL for your ideas page?

http://www.gnu.org/software/hurd/community/gsoc/project_ideas.html

* What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2010. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.

bug-hurd@gnu.org ( http://lists.gnu.org/mailman/listinfo/bug-hurd )

* What is the main IRC channel for your organization?

\#hurd on freenode.net

* Does your organization have an application template you would like to see students use? If so, please provide it now. Please note that it is a very good idea to ask students to provide you with their contact information as part of your template. Their contact details will not be shared with you automatically via the GSoC 2010 site.

[[student_application_form]]

* What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible:

The most important criterium is that the person is involved in the project for
some time, knowing the ways; so he can actually instruct the student; and if
there are tough technical questions he can't answer himself, he knows whom to
ask.

It's also important that the mentors are reliable and helpful, so the students
won't be left on their own with any problems they face.

* What is your plan for dealing with disappearing students?

The plan is mostly to avoid that happening in the first place. To this end, we
are particularily careful with selection of students: Making sure
that they have no other major obligations during that time; that they are motivated
enough; that they actually have the necessary skills to complete the task; that
they fit in our community.

Also, we will make sure that we are constantly in contact with the students --
asking about progress, discussing technical issues, etc. -- so we can act in
time if things go wrong.

If a student disappears in spite of all this, there is little we can do. Of course
we will try to contact him and find out what the problem is; whether the
project can perhaps be scaled down, or otherwise salvaged, so that the effort
already invested in the student and the project is not wasted. We also try to
make sure that all important design discussions are archieved, and that all
code produced is suitable for upstream inclusion from the beginning -- to allow
others to pick up the project if necessary, without having to start from zero.

* What is your plan for dealing with disappearing mentors?

As our mentors all have been with the project for some time, the risk of them
disappearing is not too big. If one of them disappears nevertheless, it's not a
problem for us: we have enough mentors, and someone else will take over.

We will encourage the students to keep discussions public as much as possible,
keeping private conversations with the mentors to a minimum, so the transition
should go smoothly.

* What steps will you take to encourage students to interact with your project's community before, during and after the program?

We try to make it very clear that we expect the students to get into regular
contact with us early during the student selection process already, and won't
consider their applications otherwise. This way we know that the students are
able and willing to communicate with us in the first place.

After selection, the regular contact is kept up: we require the
students to participate in IRC meetings up to twice a week, where we ask the students
actively about the work they do, problems they face, decisions they take, etc.
Furthermore, we ask them to be available on IRC while working on their
projects, so we can communicate easily.

We also require the students to join our main development mailing list, so any
design questions, etc. can be discussed there. We encourage them to take
part in other conversations, not directly related to their projects, as well.

After the program we continue the regular meetings, discussing the further
development of their original projects; as well as new projects, after the
original ones are done.

* What will you do to ensure that your accepted students stick with the project after GSoC concludes?

In addition to keeping up the regular IRC meetings,
we try to invite all participating students to meet us at conferences afterwards,
where we discuss the projects, as well as other Hurd-related topics. This should
keep them motivated to follow up on the work they have done during the
program, and generally help keeping them involved.

* Is there anything else you would like to tell the Google Summer of Code program administration team? :

* Backup Admin (Link ID):

tschwinge