''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 13,000+ student participants and 12,000 mentors from over 125 countries worldwide. Google Summer of Code has produced 33,000,000+ lines of code for 608 open source organizations.'' {{{ #!html
[ ... from Google Summer of Code 2018 site. ]
}}} == HelenOS == [[Image(htdocs:screenshot.png,256px,right,margin-left=30, margin-bottom=30, title="HelenOS features in a single screenshot")]] HelenOS participates in GSoC 2018 as part of the [http://gsoc.microkernel.info Microkernel Devroom umbrella organization]. 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 seven 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. == Students == If you are interested in working on one of our project ideas below, please get in touch with us on our [wiki:MailingList mailing list] and/or [wiki:IRCChannel IRC channel]. In order to qualify, we would like to invite you to demonstrate your ability and determination to work on HelenOS during the Google Summer of Code 2018 by completing a small programming task before the student application deadline on April 23rd 2018. You should check out the latest master branch of HelenOS, [wiki:UsersGuide/CompilingFromSource build the system], then think of small programming task (ideally) related to their proposal, implement it, test it and [wiki:HowToContribute submit the patch to us]. == 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. Note that contributing to HelenOS does '''not''' have to involve kernel programming. In a microkernel-based operating system, most of the features involve work on the user space parts of the system, such as libraries and server tasks. Having said that, we do not object pure kernel projects either. === Userspace device drivers development === * [ticket:674 Implement virtio-net driver] * [ticket:675 Implement Xen PV network device driver] * [ticket:621 Raspberry Pi USB controller driver] * [ticket:647 USB support on BeagleBoard XM and BeagleBone computers] * [ticket:572 USB DisplayLink driver] * [ticket:571 Driver for Broadcom VideoCore IV (Raspberry Pi)] * [ticket:577 AC'97 Audio driver] === Kernel programming and platform support === * [ticket:11 Support PAE on ia32] * [ticket:649 Implement support for Creator Ci40 (mips32)] === Improving support for debugging and observability === * [ticket:310 Support for DWARF Debugging Information Format] * [ticket:646 GDB stub for remote debugging] === Improving user experience, GUI === * [ticket:652 Graphics stack (GUI) improvements] * [ticket:719 Terminal resizing and scrolling] === Libraries and tooling === * [ticket:648 Extend dynamic linking support to (an)other architecture(s)] * [ticket:424 RPC/IPC generator] === Porting of third-party components to HelenOS === * [ticket:712 Port Git to HelenOS]