aboutsummaryrefslogtreecommitdiff
path: root/en/projects/summerofcode.sgml
blob: 5363448a265d772601c887f509e2af6227ce204a (plain) (blame)
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; &lt;phk@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;bz@FreeBSD.org&gt;</td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/ShteryanaShopova">Wiki</a></td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;gnn@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;netchild@FreeBSD.org&gt;</td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/RomanDivacky">Wiki</a></td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;benno@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;erwin@FreeBSD.org&gt;</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">&nbsp;</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; &lt;ariff@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;jhb@FreeBSD.org&gt;</td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/PaoloPisati">Wiki</a></td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;kmacy@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;kmacy@FreeBSD.org&gt;</td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/ChrisJones">Wiki</a></td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;ume@FreeBSD.org&gt;</td></tr>
<tr><td>Web:</td><td><a href="http://wikitest.freebsd.org/moin.cgi/MichaelBushkov">Wiki</a></td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;ps@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;silby@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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; &lt;pjd@FreeBSD.org&gt;</td></tr>
<tr><td colspan="2">&nbsp;</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>