{24} HelenOS and Google Summer of Code 2016 (20 matches)

Google Summer of Code is a global program focused on introducing students to open source software development. Students work on a 3 month programming project with an open source organization during their break from university. Since its inception in 2005, the program has brought together almost 11,000 student participants and 10,000 mentors from over 113 countries worldwide. Google Summer of Code has produced over 50 million lines of code for 515 open source organizations.

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

HelenOS

screenshot.png HelenOS is a portable microkernel-based multiserver operating system designed and implemented from scratch. It decomposes key operating system functionality such as file systems, networking, device drivers and graphical user interface into a collection of fine-grained user space components that interact with each other via message passing. A failure or crash of one component does not directly harm others. HelenOS is therefore flexible, modular, extensible, fault tolerant and easy to understand.

HelenOS does not aim to be a clone of any existing operating system and trades compatibility with legacy APIs for cleaner design. Most of HelenOS components have been made to order specifically for HelenOS so that its essential parts can stay free of adaptation and glue layers, franken-components and the maintenance burden incurred by them.

HelenOS runs on eight different processor architectures and machines ranging from embedded ARM devices and single-board computers through multicore 32-bit and 64-bit desktop PCs to 64-bit Itanium and SPARC rack-mount servers.

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, 2012 and 2014, HelenOS became a Google Summer of Code mentoring organization and mentored 10 students in total during their journey through the program. HelenOS and the Google Summer of Code make a perfect match enabling students from universities worldwide to experience the thrill of the microkernel multiserver operating system development.

Who Are We Looking for?

We are looking for students with real interest in operating systems, system-level programming, software design and HelenOS. We are looking for people who will play nicely with our community and by our guidelines. We are looking for those who are willing to give their project the necessary time and care. If a student only wants to pass Google Summer of Code with the minimum effort, HelenOS is not a good match for him or her. We are looking for already experienced C coders because 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 2016 by completing a simple HelenOS task before the student application deadline on March 25. The student should check out the latest mainline sources of HelenOS, build the system, then either pick an existing bug or enhancement or think of their own improvement, implement it, test it and submit the patch / public bzr branch / merge directive to our mailing list. Students interested in applying for a Google Summer of Code project also need to fill out the application form and attach it to their application.

If a student is accepted, he or she will be invited to participate in the community development mailing list and IRC channel from day one. We will also ask him or her to periodically document his or her progress via mailing list write-ups and/or blog entries. The mentor will act as a buddy in our team who will monitor the development and provide the student with guidance when necessary. However, as a first-class member of our development community the student will also receive feedback from other developers besides the designated mentor.

Ideas List

The project ideas for the Google Summer of Code can be characterized as things that will improve the usability of HelenOS while building on the functionality already present in the source tree. No project in the list poses an open-questions topic in the academic sense. Instead, each project is rather implementation-oriented and achievable in one trimester. Each idea is also accompanied by a motivation and a short explanation of why we think somebody should work on it. We expect the students to deliver code that could be seamlessly integrated with the mainline development branch of HelenOS.

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 operating system, most of the projects involve work on the user space parts of the system, such as libraries and server tasks. Having said that, we don't object pure 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 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 discuss 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 might also sponsor ideas for related projects in the form of mentoring or co-mentoring (see the list of cross-project ideas for inspiration).

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

Ticket Summary Component
#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
#655 Networking stabilization campaign helenos/net/other

Graphics stack related

Ticket Summary Component
#571 Driver for Broadcom VideoCore IV (Raspberry Pi) helenos/drv/other
#572 USB DisplayLink driver helenos/drv/other
#652 Graphics stack (GUI) improvements helenos/gui

Sound related

Ticket Summary Component
#577 AC'97 Audio driver helenos/drv/other

Device drivers

Ticket Summary Component
#194 Driver for AMD Lance network card clone helenos/net/other
#571 Driver for Broadcom VideoCore IV (Raspberry Pi) helenos/drv/other
#572 USB DisplayLink driver helenos/drv/other
#577 AC'97 Audio driver helenos/drv/other
#621 Raspberry Pi USB controller driver helenos/usb/other
#647 USB support on BeagleBoard XM and BeagleBone computers helenos/drv/other

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
#646 GDB stub for remote debugging 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
#524 Implement support for Ben NanoNote (mips32) helenos/kernel/mips32
#649 Implement support for Creator Ci40 (mips32) helenos/kernel/mips32
#650 Implement support for a MikroTik RouterBoard (mips32) helenos/kernel/mips32
#651 Implement Turris Omnia support (arm32) helenos/kernel/arm32

Infrastructure projects

Ticket Summary Component
#419 HelenOS as a Genode platform helenos/unspecified
#424 RPC/IPC generator helenos-infrastructure
#518 Switch to Waf build system helenos-build
#648 Extend dynamic linking support to (an)other architecture(s) helenos/srv/loader
#653 Advanced shell scripting in Bdsh helenos/app/bdsh
#654 C++ support helenos/unspecified

Recapitulation of all ideas

Ticket Summary
#11 Support PAE on ia32
#40 Implement support for Sgi Octane (mips64)
#310 Support for DWARF Debugging Information Format
#358 IRQ pseudocode compiler
#419 HelenOS as a Genode platform
#424 RPC/IPC generator
#425 Implement support for Lemote Fuloong/Yeeloong (mips64)
#517 Port the clang (LLVM) compiler to HelenOS
#524 Implement support for Ben NanoNote (mips32)
#526 Port DOSBox to HelenOS
#571 Driver for Broadcom VideoCore IV (Raspberry Pi)
#572 USB DisplayLink driver
#577 AC'97 Audio driver
#621 Raspberry Pi USB controller driver
#646 GDB stub for remote debugging
#647 USB support on BeagleBoard XM and BeagleBone computers
#648 Extend dynamic linking support to (an)other architecture(s)
#649 Implement support for Creator Ci40 (mips32)
#651 Implement Turris Omnia support (arm32)
#655 Networking stabilization campaign
Note: See TracReports for help on using and creating reports.