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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
|
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD: www/en/projects/summerofcode.sgml,v 1.54 2006/06/12 20:06:50 erwin Exp $">
<!ENTITY title "FreeBSD Summer Projects">
<!ENTITY % navinclude.developers "INCLUDE">
<!ENTITY % developers SYSTEM "../developers.sgml"> %developers;
]>
<html>
&header;
<p>The FreeBSD Project is excited to take part in the Google <a
href="http://code.google.com/summerofcode.html">Summer of Code
2006</a>. This project endeavors to fund students to contribute to
an open source project over the summer break.</p>
<ul>
<li><a href="#students">Student Projects</a></li>
<li><a href="#ideas">Example Proposal Ideas</a>
<ul>
<li><a href="#p-userland">Userland / Installation Tools</a></li>
<li><a href="#p-filesystem">Filesystem</a></li>
<li><a href="#p-networking">Networking</a></li>
<li><a href="#p-security">Security</a></li>
<li><a href="#p-kernel">Kernel</a></li>
</ul>
</li>
<li><a href="#mentors">Possible Mentors</a></li>
<li><a href="#proposals">Proposal Guidelines</a></li>
<li><a href="#infrastructure">Infrastructure Provided to Students</a></li>
<li><a href="#faq">Frequently Asked Questions</a></li>
</ul>
<a name="students"></a>
<h2>Student Projects</h2>
<table border="0">
<tr><td>Student:</td><td>Spencer Whitman</td></tr>
<tr><td>Summary:</td><td>K - The Kernel meta-language</td></tr>
<tr><td>Mentor:</td><td>&a.phk; <phk@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Shteryana Sotirova Shopova</td></tr>
<tr><td>Summary:</td><td>Integrated SNMP monitoring</td></tr>
<tr><td>Mentor:</td><td>&a.bz; <bz@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/ShteryanaShopova">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Clement Lecigne</td></tr>
<tr><td>Summary:</td><td>IPv6 stack vulnerabilities</td></tr>
<tr><td>Mentor:</td><td>&a.gnn; <gnn@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Roman Divacky</td></tr>
<tr><td>Summary:</td><td>Linux emulator</td></tr>
<tr><td>Mentor:</td><td>&a.netchild; <netchild@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/RomanDivacky">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>ADAM David Alan Martin</td></tr>
<tr><td>Summary:</td><td>AutoFS on FreeBSD 6</td></tr>
<tr><td>Mentor:</td><td>&a.benno; <benno@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Gábor Kövesdán</td></tr>
<tr><td>Summary:</td><td>Improving FreeBSD Ports Collection</td></tr>
<tr><td>Mentor:</td><td>&a.erwin; <erwin@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/G%C3%A1borK%C3%B6vesd%C3%A1n">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Ryan Beasley</td></tr>
<tr><td>Summary:</td><td>Syncing with the 4Front Technologies OSS v4 API</td></tr>
<tr><td>Mentor:</td><td>&a.ariff; <ariff@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Paolo Pisati</td></tr>
<tr><td>Summary:</td><td>Study, analyze and improve the interrupt handling infrastructure in FreeBSD</td></tr>
<tr><td>Mentor:</td><td>&a.jhb; <jhb@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/PaoloPisati">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Yuan, Jue</td></tr>
<tr><td>Summary:</td><td>Integrate Xen Support to FreeBSD</td></tr>
<tr><td>Mentor:</td><td>&a.kmacy; <kmacy@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Christopher Jones</td></tr>
<tr><td>Summary:</td><td>Jail Resource Limits etc</td></tr>
<tr><td>Mentor:</td><td>&a.kmacy; <kmacy@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/ChrisJones">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Michael Bushkov</td></tr>
<tr><td>Summary:</td><td>Nss-LDAP importing and nsswitch subsystem improvement</td></tr>
<tr><td>Mentor:</td><td>&a.ume; <ume@FreeBSD.org></td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/MichaelBushkov">Wiki</a></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Markus Boelter</td></tr>
<tr><td>Summary:</td><td>Bundled PXE Installer</td></tr>
<tr><td>Mentor:</td><td>&a.ps; <ps@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Dongmei Liu</td></tr>
<tr><td>Summary:</td><td>Provide a set of default SeBSD policy for many common network services on FreeBSD 6.0, develop a policy analyse tool and a policy configure tools for SeBSD</td></tr>
<tr><td>Mentor:</td><td>&a.silby; <silby@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
<tr><td>Student:</td><td>Ivan Voras</td></tr>
<tr><td>Summary:</td><td>FreeBSD GEOM Storage Virtualisation Layer (gvirstor)</td></tr>
<tr><td>Mentor:</td><td>&a.pjd; <pjd@FreeBSD.org></td></tr>
<tr><td colspan="2"> </tr>
</table>
<p>See also <a href="http://wikitest.freebsd.org/moin.cgi/SummerOfCode2006">Wiki</a> and
<a href="http://code.google.com/soc/freebsd/about.html">Google</a> pages.</p>
<a name="ideas"></a>
<h2>Example Proposal Ideas</h2>
<p>In addition to the student project ideas listed below, the FreeBSD
Project maintains a list of general projects looking for volunteers <a
href="&base;/projects/ideas/index.html">here</a>.</p>
<a name="p-userland"></a>
<h3>Userland / Installation Tools</h3>
<ul>
<li><strong>Bundled PXE Installer</strong>: It would be great to
have a bundled PXE installer. This would allow one to boot an
install server from a FreeSBIE live CDROM on one box, set the BIOS
on subsequent boxes to PXE boot, and then have the rest happen by
magic. This would be very helpful for installing cluster nodes,
etc.</li>
<li><strong>Fully Integrated SNMP monitoring</strong>: Plugins for
our BSNMP pieces to monitor elements of system state such as load,
disk space, VM statistics, entropy, firewall rules and states,
sendmail queues and accepts/rejects, and the like. An SNMP client
that could pull and centralize the data gathering, render it,
etc. <a href="mailto:philip@FreeBSD.org">&a.philip;</a>, <a
href="mailto:glebius@FreeBSD.org">&a.glebius;</a>, <a
href="mailto:harti@FreeBSD.org">&a.harti;</a>, and <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a> are
coordinating.</li>
<li><strong>Integrate Xen Support</strong>: Support for the <a
href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">Xen virtual
machine monitor</a> is coming into FreeBSD -CURRENT, so the
installer could be updated to make it possible to setup a Xen
system with several FreeBSD nodes, etc. Please coordinate with
<a href="mailto:kmacy@FreeBSD.org">&a.kmacy;</a> who has done work
in this area.</li>
<li><strong>Improve our regression testing system</strong>: Nik
Clayton has written a regression test infrastructure using Perl.
More of the regression tests should be made to work with libtap.
There are two main parts to it. First, many of the existing tests
should be moved from using assert() to using ok() and friends from
libtap. Second, more regression tests should be written.
Students familiar with scripting languages and software testing
are encouraged to work on this. <a
href="mailto:nik@FreeBSD.org">&a.nik;</a> is the coordinator.
</li>
<li><strong>Tracking performance over time</strong>: One of the major
issues in a project the size of FreeBSD is monitoring changes in
performance characteristics over time. Doing this requires several
things. Those include a suite of appropriate tests, hardware to run
the tests on, a database to store results in, and software to
extract interesting results and display them. Solving the whole
problems is probably beyond the scope of one summer's work, but an
interesting subset should be manageable. <a
href="mailto:brooks@FreeBSD.org">&a.brooks;</a> is the coordinator.</li>
<li><strong>Improvements to FreeBSD's userland profiling</strong>:
There are a number of enhancements possible to FreeBSD profiling
infrastructure: (a) allowing the profiling clock used by executables
compiled for profiling to be driven by hardware performance monitoring
counters, (b) enhancing gprof(1) to profile dynamically linked executables,
and (c) making gprof(1) and moncontrol(3) to be architecture independent.
<a href="mailto:jkoshy@FreeBSD.org">&a.jkoshy;</a> is the coordinator.</li>
<li><strong>A GUI front end for hwpmc(4)</strong>: Create a GUI
tool that can collect performance data using hwpmc(4) and display
it visually. In brief such a tool would offer: live and offline
analysis of a hwpmc(4) data stream, visual indication of hotspots
in executables and shared libraries with the ability to drill down
to an annotated source or machine code listing, system-wide as well
as process-specific analyses, visual representations of callgraphs.
<a href="mailto:jkoshy@FreeBSD.org">&a.jkoshy;</a> is the coordinator.</li>
<li><strong>BSD licensed API compatible version of GNU
readline</strong>: Create a cleanroom implementation that is API
compatible with GNU readline but which is not encumbered by the
GPL. <a href="mailto:jkh@FreeBSD.org">&a.jkh;</a> is the
coordinator.</li>
</ul>
<a name="p-filesystem"></a>
<h3>Filesystem</h3>
<ul>
<li><strong>inode versioning</strong>: Introduce an inode version
number into UFS, so we can store inodes in different formats. As
an example of how to use this, introduce a new inode format that
has a 32 bit link count field. <a
href="mailto:dwmalone@freebsd.org">&a.dwmalone;</a> is the
coordinator.</li>
<li><strong>Autofs</strong>: Create the autofs filesystem from a
specification. Candidates should have some filesystem knowledge
and network filesystem knowledge. Kernel transport and
interaction with the "amd"
automounter needs to be completed. <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a> is coordinating.</li>
<li><strong>Logical Volume Manager</strong></li>
</ul>
<a name="p-networking"></a>
<h3>Networking</h3>
<ul>
<li><strong>IPv6 stack vulnerabilities</strong>: Review the last few
years worth of IP stack vulnerabilities. Check that these have been
fixed in the IPv6 stack too. Fix ones that haven't been fixed. <a
href="mailto:dwmalone@freebsd.org">&a.dwmalone;</a> is the
coordinator.</li>
<li><strong>IPv6 feature parity</strong>: Review new features that
have been added to the IP stack (hostcache, TCP MD5 checksums,
...). Check if these include IPv6 support. Implement if it
hasn't. <a href="mailto:dwmalone@freebsd.org">&a.dwmalone;</a> is
the coordinator.</li>
<li><strong>NFS Lockd (improve semantics)</strong>: Improve the
semantics of the NFS lockd in FreeBSD. Apple has made certain
enhancements that can be leveraged in our code base. Implement
state recovery in the lockd. Candidate would learn how to port
code from one kernel to another as well as how to maintain state
on the client side. This would be a good resume addition. <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a> is coordinating.</li>
<li><strong>NFS Lockd (kernel implementation)</strong>: Improve the
semantics of the NFS lockd in FreeBSD. Moving the lockd
implementation into the kernel provides several key performance
and semantic improvements. Candidates should have a good
understanding of NFS, locking, RPC and kernel networking. This is
a great resume addition, providing you want to be saddled with
"knowing NFS" for the rest of your career, it is not for the faint
of heart. <a href="mailto:alfred@FreeBSD.org">&a.alfred;</a> is
coordinating.</li>
</ul>
<a name="p-security"></a>
<h3>Security</h3>
<ul>
<li><strong>SecureMines</strong>: Add meta-data to the
system in order to trap intruders and provide an audit log. The
goal of this project is to create several means of marking an
event as a foreign act (such as opening a trap file) which halts
the system and provides as much information as possible,
possibilities include using extended attributes to tag such
"mines". Candidates should have an understanding of the Unix
process model and should be prepared to investigate the new
comprehensive audit system in FreeBSD. This system will shortly have
a framework for writing intrusion detection modules. <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a> and <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a> are
coordinating.</li>
<li><strong>SEBSD</strong>: SEBSD is a port of NSA's SELinux FLASK/TE
security model to the FreeBSD operating system using the TrustedBSD MAC
Framework. Right now the system is highly experimental, and a great
project would be for one or more students to spend the summer taking it
from an experimental prototype to something that can be actually used.
This might include the development of policy, integration of SEBSD into
the installer components, adaptation of userland components, sample
deployments, documentation, and so on. Candidates will want some
background in access control technology, especially mandatory access
control; experience with alternative security models would be a plus, as
would a background in OS development. However, there's room for a
range of work here, and all proposals will be considered! <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a> is coordinating.</li>
<li><strong>Audit</strong>: Audit is a fine-grained security event log
mechanism present in FreeBSD (and other operating systems). FreeBSD's
audit implementation is based on Sun's published BSM API and file
format, and will appear in FreeBSD 6.2-RELEASE. A variety of student
projects are available to work on, including tasks such as working on
XML output support and database integration, a graphical audit review
tool, distributed audit log management support, and intrusion detection
work. Students are encouraged to contact <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a> who is coordinating.</li>
</ul>
<a name="p-kernel"></a>
<h3>Kernel</h3>
<ul>
<li><strong>Generic Input Device Subsystem</strong>: Some work has
been done in Perforce that begins to replace the ancient
psm->moused->syscons codepath into something more pleasant.
There's still a lot of duplication between psm and moused, however
and even more work is necessary to get syscons to be happy with
the new world order. <a
href="mailto:philip@FreeBSD.org">&a.philip;</a> is coordinating.</li>
<li><strong>Update the Linuxulator</strong>: FreeBSD provides Linux
binary compatibility through a Linux system call table that is
invoked when Linux ELF binaries are executed. This implementation
should be compared with an up-to-date Linux Kernel so that
important missing syscalls can be added to ensure that all
mainstream applications continue to work on FreeBSD. The student
should be able to read and understand foreign C code, write C
code, and have a good understanding of how to do a clean room
implementation of GPLed code (no copy & paste!).</li>
<li><strong>Suspend to disk</strong>: Implement a suspend/resume
from disk mechanism. Possibly use the dump functions to dump
pages to disk, then use ACPI to put the system in S4 or power-off.
Resume would require changes to the loader to load the memory
image directly and then begin executing again. This project
requires good knowledge of C, an understanding of the
hardware/software interface, a laptop that works with ACPI, and
kernel awareness. <a href="mailto:njl@FreeBSD.org">&a.njl;</a>
and <a href="mailto:bruno@FreeBSD.org">&a.bruno;</a> are
coordinating.</li>
<li><strong>Implement and profile various algorithms for
powerd(8)</strong>: Implement a range of predictive algorithms
(and perhaps design your own) and profile them for power usage and
performance loss. The best algorithm will save the most power
while losing the least performance. Requires basic C knowledge,
laptop supported by cpufreq(4) (suggest newer Pentium-M CPU), and
some statistics. <a href="mailto:njl@FreeBSD.org">&a.njl;</a>
and <a href="mailto:bruno@FreeBSD.org">&a.bruno;</a> are
coordinating.</li>
<li><strong>Kernel meta-language</strong>: Develop a dialect of the
C language that simplifies the task of writing kernel code.
It should include language extensions that make it
possible to write kernel code more cleanly and with less bugs. An
example of this would have language support for linked lists,
to obviate the need for messy MACROs. <a
href="mailto:gnn@FreeBSD.org">&a.gnn;</a> and <a
href="mailto:phk@FreeBSD.org">&a.phk;</a> are coordinating. A Wiki
with more information is available <a
href="http://wikitest.freebsd.org/moin.cgi/K">here</a>.</li>
<li><strong>The Arbitrary Interpreter Hack</strong>: Allow FreeBSD
binaries for non-native CPU architectures to be emulated by
having these 'interpreted' by an instruction set emulator. This
work would allow FreeBSD/{ARM,MIPS,PowerPC} executables to run
on a FreeBSD/i386 or FreeBSD/amd64 host. This project requires
an in-depth study of machine ABIs and of Unix semantics. It
has a small kernel component and also involves effort in making
the instruction set emulator robust. <a
href="mailto:jkoshy@FreeBSD.org">&a.jkoshy;</a> is the
coordinator.</li>
<li><strong>Cheap Syscalls</strong>: Add a page shared between every
process and the kernel to do things like gettimeofday() without doing
a real syscall. Can also be used to enable the use of SYSENTER to do
other syscalls, on i386, when the hardware supports it. Similar to
Linux's vsyscall page. Requires good knowledge of C, memory management
on modern operating systems, and run-time linking. <a
href="mailto:ssouhlal@FreeBSD.org">&a.ssouhlal;</a> is the
coordinator.</li>
<li><strong>Boot-time Kernel Patching</strong>: Design and implement an
API to patch kernel code based on hardware features detected at
boot. This will, for example, enable the use of PREFETCH instructions
when 3DNow! support is detected on the CPU.
Requires good knowledge of C, and basic knowledge of i386 assembly. <a
href="mailto:ssouhlal@FreeBSD.org">&a.ssouhlal;</a> is the
coordinator.</li>
<li><strong>NMI Watchdog</strong>: Use the performance counters feature
of i386/amd64 processors to periodically send an NMI to every
processor, and make sure the kernel is still running correctly.
Requires good knowledge of the i386 architecture and C. <a
href="mailto:ssouhlal@FreeBSD.org">&a.ssouhlal;</a> is the
coordinator.</li>
</ul>
<p>Additional projects may be found by browsing the <a
href="index.html">FreeBSD Development Projects</a> page or by
viewing some of the recent <a href="&base;/news/status">Developer
Status Reports</a>.</p>
<a name="mentors"></a>
<h2>Mentors</h2>
<p>If you are interested in working on a project not explicitly
mentioned above, you may want to contact one of the potential
mentors below about writing a proposal in one of the following broad
categories.</p>
<ul>
<li><strong>Networking</strong>:
<a href="mailto:alfred@FreeBSD.org">&a.alfred;</a>,
<a href="mailto:gnn@FreeBSD.org">&a.gnn;</a>,
<a href="mailto:brooks@FreeBSD.org">&a.brooks;</a>, and
<a href="mailto:sam@FreeBSD.org">&a.sam;</a></li>
<li><strong>Filesystems</strong>: <a
href="mailto:scottl@FreeBSD.org">&a.scottl;</a>, <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a>, <a
href="mailto:ssouhlal@FreeBSD.org">&a.ssouhlal;</a></li>
<li><strong>GEOM</strong>: <a
href="mailto:phk@FreeBSD.org">&a.phk;</a></li>
<li><strong>Release Engineering / Integration</strong>: <a
href="mailto:re@FreeBSD.org">re@FreeBSD.org</a></li>
<li><strong>TrustedBSD / Security</strong>: <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></li>
<li><strong>Pluggable Disk Schedulers</strong>: <a href="mailto:luigi@FreeBSD.org">&a.luigi;</a>.</li>
<li><strong>ACPI</strong>: <a href="mailto:njl@FreeBSD.org">&a.njl;</a>
and <a href="mailto:bruno@FreeBSD.org">&a.bruno;</a>.</li>
<li><strong>Sound</strong>: <a
href="mailto:matk@FreeBSD.org">&a.matk;</a>.</li>
<li><strong>Virtual Memory</strong>: <a
href="mailto:ssouhlal@FreeBSD.org">&a.ssouhlal;</a>.</li>
<li><strong>Performance Monitoring</strong>: <a
href="mailto:jkoshy@FreeBSD.org">&a.jkoshy;</a>.</li>
<li><strong>Ports Collection</strong>: <a
href="mailto:erwin@FreeBSD.org">&a.erwin;</a>.</li>
</ul>
<p>If your project is not selected for funding by Google, but you
still think you have a feasible project proposal, then please email
<a href="mailto:proposals@FreeBSD.org">proposals@FreeBSD.org</a>.</p>
<a name="proposals"></a>
<h2>Proposal Guidelines</h2>
<p>Students are responsible for writing a proposal and submitting it
to Google before the application deadline. The following outline
was adapted from the Perl Foundation <a
href="http://www.perlfoundation.org/gc/grants/proposals.html">open
source proposal HOWTO</a>. A strong proposal will include:</p>
<ul>
<li><strong>Name</strong></li>
<li><strong>Email</strong></li>
<li><strong>Project Title</strong></li>
<li><strong>Possible Mentor</strong> <em>(optional)</em></li>
<li><strong>Benefits to the FreeBSD Community</strong> - a good
project will not just be fun to work on, but also generally
useful to others.</li>
<li><strong>Deliverables</strong> - It is very important to list
quantifiable results here e.g.
<ul>
<li>"Improve X modules in ways Y and Z."</li>
<li>"Write 3 new man pages for the new interfaces."</li>
<li>"Improve test coverage by writing X more unit/regression
tests."</li>
<li>"Improve performance in FOO by X%."</li>
</ul>
</li>
<li><strong>Project Schedule</strong> - How long will the project
take? When can you begin work?</li>
<li><strong>Availability</strong> - How many hours per week can
you spend working on this? What other obligations do you have
this summer?</li>
<li><strong>Bio</strong> - Who are you? What makes you the best
person to work on this project?</li>
</ul>
<a name="infrastructure"></a>
<h2>Infrastructure Provided to Students</h2>
<p>In 2005, the FreeBSD Project provided access to the FreeBSD
Perforce revision control infrastructure in order to facilitate
student collaboration, provide public access and archiving for the
on-going student projects, and to help mentors and the community
monitor on-going work. It is expected that students participating in
the 2006 program will be offered the same facilities, and that unless
there is a strong argument otherwise, that those facilities will be
used for 2006 projects. Students will also be asked to maintain wiki
pages on their on-going projects. In the past, e-mail, IRC, and
instant messaging have proven popular among students and mentors, and
students participating in the FreeBSD summer program are encouraged to
use these and other electronic communication mechanisms to become
active in the community.</p>
<a name="faq"></a>
<h2>Frequently Asked Questions</h2>
<ul>
<li><p><strong>Am I eligible?</strong></p>
<p>Please see the Google <a
href="http://code.google.com/soc/studentfaq.html">Student FAQ</a>
for all questions about eligibility.</p></li>
<li><p><strong>When is the proposal deadline?</strong></p>
<p><strong>May 8, 2006 17:00 Pacific Daylight Time</strong>.
Proposals must be submitted through the Google web site, not
directly to the FreeBSD Project.</p></li>
<li><p><strong>Where do I send my proposal?</strong></p>
<p>Propopsals must be sent to Google's <a
href="http://code.google.com/soc/student_step1.html">student
signup page</a>.</p>
<li><p><strong>What projects were completed successfully by students
last summer?</strong></p>
<p>Please see the <a href="summerofcode-2005.html">2005 FreeBSD
Summer of Code</a> page for a list of the completed projects
from last year.</p></li>
</ul>
&footer;
</body>
</html>
|