{19} HelenOS and Google Summer of Code 2013 (14 matches)

Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. We work with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together nearly 6,000 successful student participants and over 3000 mentors from over 100 countries worldwide, all for the love of code.

[ ... from Google Summer of Code 2013 site. ]


HelenOS is a microkernel-based multiserver operating system designed from scratch. It decomposes key operating system functionality into isolated but intensively communicating server tasks that reside entirely in user space. HelenOS thus provides a computing environment that has several virtues, such as flexibility, increased robustness, well defined explicit interfaces and reduced complexity of individual components as compared to other operating systems.

HelenOS does not aim to be another clone of Unix or some other legacy system and is not POSIX-compliant (even though it may seem POSIX-similar at times). Instead, we try to design it according to our sense for what is the most elegant and right thing to do. What makes HelenOS unique among the other multiserver operating systems is its multiplatform and multiprocessor microkernel. HelenOS runs on seven different processor architectures, ranging from a 32-bit uniprocessor little-endian ARMv4 and commodity PC (x86 and x86-64) to a 64-bit multicore big-endian UltraSPARC T1.

A Bit of History

HelenOS has traditionally been a project with significant student participation. Its first lines were written by a student in 2001. In 2004, the project turned into a collective academic effort and ever since then, new students have been joining every year to work on HelenOS-related theses and assignments. In 2011 and 2012, HelenOS became a Google Summer of Code mentoring organization and mentored 8 students in total during their journey through the program. HelenOS and the Google Summer of Code make a perfect match enabling students from more universities to experience the thrill of the multiserver operating system development and also an opportunity for the project to get something back.

Who Are We Looking For?

We are looking for students with real interest in operating systems and HelenOS. We are looking for people who will play nicely with our community and by our coding style. We are looking for those who are willing to give their project the necessary time and care. If a student only wants to pass with the minimum effort, HelenOS is not a good match for him or her. We are looking for already experienced C coders as all our projects start at the medium difficulty level and the code itself is not trivial. The successful candidate should be a good communicator, too.

We would like to invite prospective students to demonstrate their abilities and determination to work on a HelenOS project during the Google Summer of Code 2013 by completing a simple HelenOS task before the student application deadline on May 3. The student should check out the latest mainline sources from our repository, build the system, then either pick up an existing bug or enhancement or think of their own one, implement it, test it and submit the patch / public bzr branch / merge directive to us. Interested students will also need to fill out the application form and attach it in their application.

If a student is accepted, they will be asked to participate in the community mailing list and IRC channel from day one. We will also want them to periodically document their progress via mailing list write-ups and/or blog entries. The mentor will act as a buddy in our team who will monitor their development and provide them with guidance when necessary. However, participating in our community will allow them to receive feedback also from other developers besides their mentor.

Ideas List

The project ideas for the Google Summer of Code 2013 can be characterized as things that will improve the usability of HelenOS while building on the core functionality already delivered by us in the past. The individual projects are not excessively difficult and none of them poses an open-questions topic in the academic sense. Instead, each item on the list is rather implementation-oriented, achievable in one trimester and something that we really need to be done. We especially did not plague the list with things that we do not need. In contrary, each idea is accompanied by a short explanation of why we think somebody should work on it.

In the past years we learned that some students may be under the false impression that the projects for HelenOS need to involve kernel programming. In general, this is a false assumption. Because HelenOS is a microkernel-based system, most of the projects involve work on the user space parts of the system, such as libraries or server tasks. Having said that, we don't object kernel projects either.

The Ideas List is just a small subset of all open tickets for HelenOS. If you do not see an appealing topic on this list, you might want to consider looking at the broader list or suggest a completely new topic or a variation on an already existing topic. Remember that the ideas are not set in stone and, after all, it is the student who is going to suggest the idea to us. In any case, talk to us so that we can see whether the new topic would work for HelenOS during the Google Summer of Code. If not, the idea may still seem interesting to us even outside of the Google Summer of Code program. Besides our regular project ideas, the HelenOS team will also sponsor ideas for selected related projects in the form of mentoring or co-mentoring.

For your convenience, before presenting the entire Ideas List, we provide several views on the ideas grouped by a common theme. Click on the idea of your interest to see the detailed description.

Porting of existing applications to HelenOS, preferably HelenOS build dependencies or applications that can take HelenOS closer to being self-hosting

Ticket Summary Component
#402 Port QEMU to HelenOS helenos/app/other
#403 Port Python to HelenOS helenos/app/other
#517 Port the clang (LLVM) compiler to HelenOS helenos/app/other
#526 Port DOSBox to HelenOS helenos/app/other

Networking related

Ticket Summary Component
#194 Driver for AMD Lance network card clone helenos/net/other
#481 Support for IEEE802.11 wireless networking (a.k.a. WiFi) helenos/net/other
#519 Driver for the family of Realtek Gigabit Ethernet network cards helenos/net/other

Device drivers

Ticket Summary Component
#194 Driver for AMD Lance network card clone helenos/net/other
#358 IRQ pseudocode compiler helenos/lib/other
#415 Convert the ATA block device driver into a regular DDF driver helenos/bd/ata
#519 Driver for the family of Realtek Gigabit Ethernet network cards helenos/net/other
#520 Driver for VESA-compatible graphics adapter helenos/gui

Domain-specific languages and code generation

Ticket Summary Component
#358 IRQ pseudocode compiler helenos/lib/other
#424 RPC/IPC generator helenos-infrastructure

Improving debugging support

Ticket Summary Component
#310 Support for DWARF Debugging Information Format helenos-debugging
#313 Enhancement of user space debugging and observability features helenos-debugging

Support for a new architecture, machine or improving support for an existing one

Ticket Summary Component
#11 Support PAE on ia32 helenos/kernel/ia32
#40 Implement support for Sgi Octane (mips64) helenos/kernel/mips64
#425 Implement support for Lemote Fuloong/Yeeloong (mips64) helenos/kernel/mips64
#523 Implement support for Raspberry Pi (arm32) helenos/kernel/arm32
#524 Implement support for Ben NanoNote (mips32) helenos/kernel/mips32

Infrastructure projects

Ticket Summary Component
#414 Graceful system shutdown helenos-infrastructure
#518 Switch to Waf build system helenos-build
#525 Service manager helenos/app/init

Recapitulation of the Complete Ideas List

Ticket Summary
#11 Support PAE on ia32
#40 Implement support for Sgi Octane (mips64)
#310 Support for DWARF Debugging Information Format
#313 Enhancement of user space debugging and observability features
#358 IRQ pseudocode compiler
#402 Port QEMU to HelenOS
#414 Graceful system shutdown
#424 RPC/IPC generator
#425 Implement support for Lemote Fuloong/Yeeloong (mips64)
#517 Port the clang (LLVM) compiler to HelenOS
#520 Driver for VESA-compatible graphics adapter
#524 Implement support for Ben NanoNote (mips32)
#525 Service manager
#526 Port DOSBox to HelenOS
Note: See TracReports for help on using and creating reports.