GSoC Student Expectations

We're excited to get applications from students with a wide range of backgrounds, experience levels, and interests. To ensure everyone has the best experience possible, here are a few guidelines for students 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. Students 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 almost certainly 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.

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 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, students will be engaged in a project with their mentor that is designed to be educational, productive, and fill a summer. To ensure that this goes well, students should be prepared for the following: