GSoC Contributor Expectations

We're excited to get applications from potential contributors with a wide range of backgrounds, experience levels, and interests. To ensure everyone has the best experience possible, here are a few guidelines for folks thinking about applying to work with Plan 9 or related technologies in Google Summer of Code.

SKILLS

The primary skill needed to work well with Plan 9 or related projects is an ability to think creatively about problems. While the Unix lineage of all these tools is clear, we do a number of things differently. Contributors should be prepared to be working in a somewhat unfamiliar - but very exciting! - environment.

If you're working on Plan 9 itself, your project will most likely be done in C. We use a dialect of ANSI C with a few restrictions, a few extensions, and a more limited pre-processor. If you're good with ANSI C, it'll be an easy transition. There is a tiny bit of assembly in the platform support; if you're working on a port you may need to be able to handle that. It is possible to do Plan 9 projects in a few other languages (most notably Go); if you're thinking about doing that, be sure to talk to us beforehand to ensure a good language/environment fit.

For Inferno, the kernel is written in C while all the applications are written in Limbo, a high-level language vaguely similar to C (and an ideological ancestor to Go). If you're familiar with C or other C-family languages, it should be a relatively easy learning curve. If you're looking to work on a project for Inferno and are not already familiar with Limbo, you should get at least a high-level familiarity while preparing your application to GSoC and be prepared to be reasonably proficient before the start of the coding period.

Skill requirements for other projects will vary with the specifics. For example, v9fs will require C work in the style used by the Linux kernel, while edwood is written entirely in Go, and 9p/styx servers in other languages could be done entirely in those languages. If a project on our ideas page has particular skill requirements beyond these, we'll list them there.

EXPECTATIONS

Over the course of the summer, contributors will be engaged in a project with their mentor that is designed to be educational, productive, and fill about either 90, 175, or 350 hours over the course of a summer. To ensure that this goes well, contributors should be prepared for the following: