%developers; ]> &header;
The FreeBSD Project is proud to have taken part in the Google Summer of Code again in 2006. By all accounts, the FreeBSD participation in this program was an unqualified success. We received over 150 applications for student projects, amongst which 13 were selected for funding. These student projects included security research, improved installation tools, new utilities, and more. Many of the students have continued working on their FreeBSD projects even after the official close of the program. We are happy to see continued development in our source code repository by these talented young programmers and we look forward to working with more students in the future.
Information about the student projects is available from our Summer of Code wiki and all of the code is checked into Perforce. The summaries below were submitted by the individual students and their mentors.
Student: | Clement Lecigne |
Summary: | IPv6 stack vulnerabilities |
Mentor: | &a.gnn; <gnn@FreeBSD.org> |
Summary: |
The focus of this project was to review past vulnerabilities, create vulnerability testing tools and to discover new vulnerabilities in the FreeBSD IPv6 stack which is derived from the KAME project code. During the summer Clement took two libraries, the popular libnet, and his mentor's Packet Construction Set (PCS) and created tools to find security problems in the IPv6 code. Several issues were found, bugs filed, and patches created. At the moment Clement and George are editing a 50 page paper that describes the project which will be submitted for conference publication. All of the code from the project, including the tools, is on line and is described in the paper. By all measures, this was a successful project. Both student and mentor gained valuable insight into a previously externally maintained set of code. In addition to the new tools development in this effort, the FreeBSD Project now also has a new engineer to help work on the code. |
Student: | Chris Jones |
Summary: | Jail Resource Limits |
Mentor: | &a.kmacy; <kmacy@FreeBSD.org> |
Summary: |
Chris added support for limiting CPU and memory use by jails. This allows fairer sharing of systems' resources between divergent uses by preventing one jail from monopolizing the available memory and CPU time, if other users and jails have processes to run. The code is currently available as patches against RELENG_6, and Chris is in the process of applying it to -CURRENT. More details can be found at JailResourceLimits. |
Student: | Ivan Voras |
Summary: | GEOM storage virtualization (gvirstor) |
Mentor: | &a.pjd; <pjd@FreeBSD.org> |
Summary: |
The goal of this project was to create a virtual storage class for the GEOM framework in FreeBSD that would allow creating "overcommited" storage devices, with a size larger than that of available physical storage (e.g. hard drives). The project was completed successfully, and the result is available on the project's home page. It's expected the project will be included in FreeBSD CVS after it gets more testing or after FreeBSD 6.2 is released, whichever comes first. Working on the project was very pleasant, there was enough documentation and the mentor was very helpful and responsive. Google's team was apt and provided ample support to the participants of the project. The project will help both OEMs of embedded devices (such as NAS devices) and big users to make use of FreeBSD for large storage projects. |
Student: | Paolo Pisati |
Summary: | Study analyze and improve the interrupt handling infrastructure |
Mentor: | &a.jhb; <jhb@FreeBSD.org> |
Summary: |
This project consisted in the improvement of the interrupt handling system in FreeBSD: while retaining backward compatibility with the previous models (FAST and ITHREAD), a new method called 'Interrupt filtering' was added. With interrupt filtering, the interrupt handler is divided into 2 parts: the filter (that checks if the actual interrupt belong to this device) and the ithread (that is scheduled in case some blocking work has to be done). The main benefits of interrupt filtering are:
Moreover, during the development of interrupt filtering, some MD dependent code was converted into MI code, PPC was fixed to support multiple FAST handlers per line and an interrupt stray storm detection logic was added. While the framework is done, there are still machine dependent bits to be written (the support for ppc, sparc64, arm and itanium has to be written/reviewed) and a serious analysis of the performance of this model against the previous one is a WIP. |
Student: | Yuan Jue |
Summary: | Porting Xen to FreeBSD. |
Mentor: | &a.kmacy; <kmacy@FreeBSD.org> |
Summary: |
Successfully got a domU kernel usable for installation. domO support still in progress. Kip and Yuan Jue are continuing to work together on this project after the official end of SoC. |
Student: | Ryan Beasley |
Summary: | OSSV4 Sound support |
Mentor: | &a.ariff; <ariff@FreeBSD.org>, &a.netchild; <netchild@FreeBSD.org> |
Summary: |
This summer was spent adding support for 4Front's OSSV4 API to FreeBSD. A large chunk of audio ioctls were added, with a few pending, and there is still work left to do with mixers/mixer extensions (4Front's specs are still in flux) and MIDI (low priority because, IIRC, MIDI still needs maintainership). I plan to continue work related to the mixer extensions as best I can while attending university full-time. |
Student: | Markus Boelter |
Summary: | Bundled PXE Installer |
Mentor: | &a.ps; <ps@FreeBSD.org> |
Summary: |
For me, Google Summer of Code was a new and very exciting experience. I got actively involved in doing Open Source Software and giving something back to the community. Facing to some challenges within the project forced me to look behind the scenery of FreeBSD. The result was a better understanding of the overall system. Getting in touch with a lot of developers directly also gave a very special spirit to the Summer of Code. I really enjoyed the time and will continue to work on the project also after the deadline. For me, it was a great chance to get involved in active development and not just doing some scripts and hacks at home. Getting paid for the work was just a small part of the overall feeling. Thanks people at FreeBSD and Google for the really, really great time! |
Student: | Shteryana Sotirova Shopova |
Summary: | Integrated SNMP monitoring |
Mentor: | &a.bz; <bz@FreeBSD.org> |
Summary: |
After working on bsnmptools last year, Shteryana concentrated on the server side this year. An implementation for if_vlan(4) monitoring was dropped from the original proposal in favor of extended support for the new if_bridge(4) network bridge device monitoring module. In addition to RFC 4188 single bridge support and extending the kernel to get access to all the information a private MIB was designed. This was needed to be able to monitor multiple bridges supported by FreeBSD and adding an extended bridge management interface and definitely was the greatest technical challenge of the project. The project was successfully completed - including code review - and the kernel part has already been committed to CURRENT. User space part will follow soon. For STABLE a patch is available too (see wiki). Shteryana is going to continue her work on bsnmpd and is already planning support for if_vlan(4) and jails monitoring modules. We are happy that she will stay with the FreeBSD project and continue to work on bsnmp and FreeBSD after SoC. See also ShteryanaShopova and SnmpBridgeModule. |
Student: | Michael Bushkov |
Summary: | Nss-LDAP importing and nsswitch subsystem improvement |
Mentor: | &a.ume; <ume@FreeBSD.org> |
Summary: |
The project consisted of 5 parts:
Though none of the code was committed yet into the main, official FreeBSD tree, my experience from the previous year makes me think that this situation is normal. I hope, that the code will be reviewed and committed in the coming months. More detailed information about the project can be found at LdapCachedDetailedDescription. |
Student: | Roman Divacky |
Summary: | Linux emulation layer update |
Mentor: | &a.netchild; <netchild@FreeBSD.org> |
Summary: |
Roman was enthusiastic and optimistic, so I compiled a large TODO list which would have been enough for 2 students. The basics of 2.6.16 support have been implemented, and several programs from Fedora Core 4 work now with osrelease=2.6.16. More complex applications do expose some bugs, however. Most of his work is in the tree (the default compatibility is still 2.4.2), and I want to get in most of the rest this week (needs more testing with some critical apps). So far several people showed interest in helping out. |
Student: | Spencer Whitman |
Summary: | K Kernel Meta-Language |
Mentor: | &a.phk; <phk@FreeBSD.org> |
Summary: | |
Student: | Dongmei Liu |
Summary: | Porting the seref policy and setools to SEBSD |
Mentor: | &a.csjp; <csjp@FreeBSD.org> |
Summary: | Dongmei Liu spent the summer working on the basic footwork required to port the SEREF policy to SEBSD. This work has been submitted and can be viewed in the soc2006/dongmei_sebsd Perforce branch. This work was originated from the sebsd branch: //depot/projects/trustedbsd/sebsd. Additionally setools-2.3 was ported from Linux and can be found in contrib/sebsd/setools directory. It is hoped that this work will be merged into the main SEBSD development branch. |
Student: | Gabor Kovesdan |
Summary: | Improving FreeBSD Ports Collection Infrastructure |
Mentor: | &a.erwin; <erwin@FreeBSD.org> |
Summary: | |