Etherboot Project GSoC 2009 Report

Wednesday, December 2, 2009

The Etherboot Project is very pleased to have participated in Google Summer of Code™ 2009. This summer marks our fourth consecutive annual participation in this excellent mentoring program.

Google generously sponsored five students to work with us, and four of our five students (80%) successfully completed their projects. We would like to thank Google, our mentors, and our students for making this a pleasant, productive, and memorable summer.

We particularly wish thank one of our mentors, Stefan Hajnoczi, who was a GSoC student with us last year. His insights and diligence are extremely helpful and enlightening.

Although all of our GSoC projects were not successfully completed, our students' work was generally of excellent quality, and we sincerely thank them all for their diligence. Our participation in GSoC has strengthened our project by encouraging us to create additional technical and social infrastructure. These improved facilities make it easier for new people to become involved with our project and also help us better support and communicate with our existing community.

We look forward to giving future GSoC students and other interested and motivated people a positive introduction to FOSS development. What follows is a brief summary of our 2009 students' work with links to their full project pages. We conclude with a brief outline of our mentoring system that we hope may be helpful to other projects.

Student Project Summaries

Daniel Verkamp
Daniel implemented an automated regression testing framework to help us consistently deliver high-quality releases.

Joshua Oreman
Joshua extended gPXE, our network bootloader, with an 802.11 wireless stack, and added drivers for two wireless cards.

Lynus Vaz
Lynus extended gPXE scripting with a more powerful language that is capable of expressing advanced boot policies.

Pravin Shinde
Pravin created a central resource to network boot operating systems, diagnostic tools, and utilities at

Chris Kluka
Chris worked on adding a network driver DLink DGE-530T ethernet cards. Though unable to complete his project, he compiled and created useful information which will facilitate future work on this driver.

Our Mentoring System

Over our years of GSoC participation we have developed and refined a system for mentoring that works quite well for us. One of the most important attributes of our system is that we break the twelve week GSoC coding period into twelve one week evaluation periods. By doing this we ensure that we always have recent information on how each of our students is doing, which allows us to intervene in a timely fashion when needed.

Here are some of the other ways we structure our GSoC participation:

* We mentor as a team. We have a mailing list and private IRC channel specifically for mentors.

* Our mentoring team interviews all qualified applicants in a private IRC channel. Multiple perspectives have proven very helpful in identifying excellent candidates. Mentors communicate among themselves during interviews in a second private IRC channel.

* We request code samples from all of our applicants to get a sense of their proficiency and coding style.

* We present real-time coding exercises during our IRC interviews with applicants, and ask them questions about their proposed solutions, and also about their code samples.

* We inform our students of our team mentoring approach and encourage them to send general questions to the mentors mailing list.

* We require our selected students to have IRC access and to define "work hours" where they will be online and available on our main project IRC channel (#etherboot on We have found that this requirement encourages them to interact with our project community as well as their primary mentor.

* We use any and all available means to communicate directly with our students, including IRC, email, phone, VOIP, and IM. It is important to discover what works best to promote effective, open communication between students and mentors.

* We require our students to maintain a set of project pages, which include their:
-Project Plan
-Journal (broken into twelve weeks)
-git repository link

* Our mentors meet weekly with each student in a private IRC channel to review their project pages and generally discuss their progress. We have found these meetings to be very beneficial to both students and mentors.

* We make the steady progress and ultimate success of each of our student projects central to our mentoring goals. We meet as mentors to discuss how we can help each student succeed, and we discuss our formal GSoC evaluations as a team.

* We base our project's success on the quality of our code and the health of our community, and we work continuously to improve as programmers and as people.