Google
Summer
of
Code
2007
STUDENTS
Plan
9
is
an
excellent
environment
to
learn
about
many
aspects
of
computing:
operating
systems,
distributed
systems,
programming
languages,
network
protocols,
etc.
Plan
9
is
not
a
difficult
environment,
and
simplicity
and
elegance
are
its
main
qualities,
but
it
is
very
*different*
from
anything
else
you
might
be
used
to!
Fundamental
requirements:
-
A
very
open
mind
to
explore
and
embrace
very
different
concepts
and
environments.
-
You
must
enjoy
challenges
that
stretch
your
preconceptions
to
their
limits.
General
recommended
skills:
-
Understanding
of
basic
Unix
principles
and
philosophy
(but
note
that
Plan
9
is
*not*
Unix.
Plan
9
is
meant
to
*replace*
Unix.)
-
Some
programming
experience,
ideally
with
C,
but
other
languages
are
fine.
Recommended
Reading
If
you
have
any
questions
you
can
check
our
irc
channel
#plan9-gsoc
in
irc.freenode.org
or
join
the
Plan
9
Google
Summer
of
Code
mailing
list.
To
apply
follow
the
instructions
in
the
Guide
to
the
Google
Summer
of
Code
Student
Applicants
at
the
GSoC
website.
All
participating
students
will
also
receive
an
exclusive
Glenda
T-Shirt
and
an
especial
surprise
gift!
PROJECTS
We
like
to
find
a
project
that
ideally
suit
the
students
who
take
them
on.
For
that
reason
we
are
very
happy
to
hear
(on
#plan9-gsoc
on
Freenode
or
the
plan9-gsoc
Google
group)
your
particular
areas
of
interest
and
expertise.
Because
Plan
9
is
a
complete
system,
which
expands
beyond
a
single
OS,
no
matter
what
your
interests,
we
should
be
able
to
find
a
project
that
makes
you
happy
(we
know
that
happy
developers
make
for
happy
projects).
Here
is
a
list
of
project
ideas
we
have
come
up
with
as
examples,
Even
if
they
seem
complex
and
difficult,
they
are
likely
much
simpler
than
you
think.
In
Plan
9
everything
is
simpler
;)
Misc:
-
New
window
manager
different
from
rio(1),
experiment
with
new
window
management
ideas.
-
CSS
rendering
for
abaco
web
browser
-
General
purpose
boot
loader
based
on
Plan
9
kernel
and
/dev/reboot
-
Zeroconf
network
configuration
support
(ideally,
with
a
Plan
9
or
Inferno
twist)
-
Framework
of
scripts
and
tools
to
automatically
detect
and
configure
hardware
(screen
resolution,
keyboard,
mouse,
etc.)
-
Reincarnation
of
'pico'
image
manipulation
language,
or
native
graphics
functions
like
those
in
NetPBM.
-
Documentation
framework:
a
set
of
scripts
to
check
that
all
man
pages
and
other
documentation
is
up
to
date
and
in
sync
with
tools
and
APIs.
And
some
way
to
manage
and
organize
a
centralized
documentation
'handbook'
and
FAQ.
Security:
-
Ssh2
client/server
(complete
native
implementation
or
port
a
new
one
from
another
system.)
-
Add
support
for
Inferno
auth
to
Plan
9.
File
servers
(for
Plan
9
or
Inferno,
but
probably
best
implemented
in
Limbo):
-
fs
interface
to
a
version
control
system(gitfs,
hgfs
or
svnfs;
cvsfs
already
exists.)
-
Ircfs
or
imfs.
-
Bugfs:
a
bug
tracking
system
with
an
fs
interface.
-
webdavfs.
-
rssfs/webfeedfs.
-
ldapfs.
-
iPodfs.
-
cdfs(4)
support
for
writting
DVDs.
-
bluetoothfs.
Port
of
foreign
applications
to
Plan
9:
-
Video
player
(eg.,
port
mplayer).
-
Update
GCC
port
and
have
it
accepted
upstream.
-
Update
X11
port.
-
Update
python
port.
-
Port
Erlang.
-
Update
APE
to
be
a
more
complete
POSIX
environment.
-
Finish
qemu
port.
Work
on
this
project
would
require
a
good
understanding
of
x86
assembly
language
and
interest
in
learning
a
non-gcc
dialect
of
C.
Kernel
related
work:
-
Write
a
driver
for
a
piece
of
hardware
of
your
choice
(eg.,
finish
ipw2200
wireless
driver)
-
OLPC
port.
-
Profile
and
optimize
a
kernel
component
of
your
choice
(IP
stack,
vm,
...)
-
Increase
"dynamicity"
of
network
stack,
including
detaching
devices
in
kernel
and
appropriate
user-space
reactivity
(e.g.,
dhcpclient
deciding
whether
to
re-bind
or
destroy
an
existing
network
stack,
for
possible
inspiration
see
Plan
B
/net
paper).
The
kernel
part
and
the
user-space
part
are
probably
each
large
enough
to
qualify
as
independent
projects.
-
Update
SPARC
or
MIPS
ports.
-
Kernel
regresion
and
stress
testing
framework.
9P
related
projects:
-
fs
driver
for
Solaris,
FreeBSD,
NetBSD,
BeOS,
or
any
other
operating
system
(for
projects
related
to
the
existing
Linux
driver
see
v9fs).
-
9P
implementation
in
your
favorite
programming
language.
-
A
framework
to
test
the
interoperativity
of
all
existings
9P
implementations.
-
Implement
a
9P
interface
to
your
favorite
(non-plan9)
application.
-
Implement
9P
extension
for
'batch
requests'
and
improve
performance
over
high
latency
links.
-
9P
implementation
in
JavaScript,
so
that
a
browser
can
access
resources
sensibly
(ie,
not
using
HTTP/XML).
Inferno
and
Limbo:
-
Complete
'native'
dis
and
improve
Inferno/Plan
9
integration
so
Inferno
apps
work
like
native
Plan
9
apps.
-
Improve
Inferno
integration
with
Unix
or
Windows
host
OSes
(allow
Inferno
apps
to
be
managed
by
native
window
manager,
etc.)
-
A
fossil-like
(paper)
snapshot
file
server
in
Limbo
using
venti
as
backend.
-
Port
Omero
to
Limbo.
-
PS3
port
w/ppe
file
system
interfaces
and
support
for
ps3
devices
(controllers)
-
either
hosted
on
Linux
and/or
native
on
the
PS3
hypervisor.
-
Finish
Gumstix
port.
-
Port
Inferno-plugin
to
Mozilla/Firefox.
-
Native
support
for
hypervisors
(eg,
Xen,
PAPR,
KVM,
...)
-
64
bit
Inferno.
-
Native
port
to
the
Nokia
N800.
-
Hosted
port
to
Symbian
OS.
-
Other
Inferno
projects.
-
Web
application
development
framework.
-
New
window
manager
to
replace
wm.
-
New
look
for
tk
widgets.
Plan
9
from
User
Space
or
other
work
in
foreign
systems:
For
more
ideas
see:
TODO,
Inferno
GSoC
ideas
page
and
v9fs
GSoC
ideas
page.
MENTORS
-
Dave
Eckhardt
(from
CMU)
-
Devon
H.
O'Dell
-
Fariborz
"Skip"
Tavakkolian
(from
9Netics)
-
Francisco
J
Ballesteros
(from
LSUB)
-
Kris
Maglione
-
Charles
Forsyth
(
from
Vitanuova)
-
maht
-
garbeam
-
newmanbe
-
Uriel:
uriel99
AT
gmail.com
-
And
others...
Please,
if
you
have
any
questions
for
the
mentors,
join
the
plan9-gsoc
mailing
list
or
#plan9-gsoc
in
irc.freenode.org.
TIMELINE
-
March
14:
List
of
accepted
mentoring
organizations
published
on
code.google.com;
student
application
period
opens
-
March
26:
Student
application
deadline
-
April
9:
List
of
accepted
student
applications
published
on
code.google.com
-
May
28:
Students
begin
coding
for
their
GSoC
projects;
Google
begins
issuing
initial
student
payments
For
a
more
detalied
timeline
see
the
official
GSoC
site.