It’s that time of the year again. Holiday season is approaching in a few months time, so it’s time to get ready for the annual Google Summer of Code, GSoC 2012.
Each year Google pays quite a number of mainly students to contribute to an open source project. The applications have been gone through and 15 FreeBSD related projects have been approved.
I’m quite excited about the BHyVe, TrueCrypt and parallization projects.
Port FreeBSD/arm to BeagleBoard-xM
The purpose of this project is to run FreeBSD on BeagleBoard-xM device – OMAP3 based multifunctional board. The main work will be to implement OMAP3 support and peripherals like ethernet, usb host, audio and DVI video devices included in BeagleBoard-xM
Parallelization in the ports collection
The main idea of the project is to give a user an opportunity to make install of several ports at the same time. Another part of the project is to be able to build port’s dependencies in parallel. The main aim of this project is to make system update process faster and easier.
Re-enginer the wheel: a rejuvenation of BSD callout(9) and timer facilities
In all the BSD kernels, timers are provided using the callout(9) facility, which allows a function to be registered in order to be called at a future time. Right now, FreeBSD can’t handle timeouts less then 2/HZ and precision less then 1/HZ. According to some recent tests, other OSes can do it much better. Some consumers may need better resolution, and this is important in lots of applications, e.g. allow faster TCP recovery in case of error or package loss, or real-time applications.
Kernel level file integrity checker
This project will focus on providing file integrity checking capabilities to pefs. The file integrity checker will compare cryptographic checksums of files against a static signed checksum list at access time. The files are thought to be immutable and use of securelevel will guarantee that lower filesystems will protect those files. Securelevel will be extended to only permit execution of files with immutable flag set.
EFI Boot Support for amd64/i386
Complete the implementation of EFI boot support on the amd64 and possibly i386 platforms (including Intel Macs). The end result should allow the FreeBSD kernel to boot on an EFI system.
Userland Lock Profiling and Verification
This project will provide userland lock profiling and lock order verification functionality, based on the LOCK_PROFILING and WITNESS kernel options. Application developers will be able to build an instrumented application and query statistics via additional library API calls or a gperf-style external data file.
FreeBSD/arm and FDT cleanup
This project aims to clean up and refactor FreeBSD/arm and Flattened Device Tree implementation code.
Improve BSD-licensed text processing tools.
This project aims to improve, complete, and optimize the BSD-licensed text processing tools grep, sort, diff, diff3, sdiff, and mdocml. This will include adding features to diff/diff3/sdiff and mdocml and improving the efficiency of grep and sort.
IPV6 Improvement [Userland]
Improve the IPv6 support in userland according to the TODO list provided by the FreeBSD network team.
Port TrueCrypt as a geom_gate userland disk device implementation (GSoC)
This project aims to port TrueCrypt as a geom_gate userland disk device implementation. Basically what this will be doing is encrypting a virtual disk in real time.
Port NetBSD’s UDF implementation
FreeBSD has an implementation of the UDF filesystem but it is not the latest version and doesn’t support many features from newer UDF revisions (>=2.01), such as Metadata Partition or Pseudo OverWrite method. Support UDF is also readonly. NetBSD implementation by Reinoud Zandijk supports most of new UDF features and has write support too. First of all I will support new revisions only for reading and subsequently write support.
CPU percentage limits
The goal of the project is to add the CPU percentage usage accounting to the existing racct/rctl infrastructure. I want to make it possible for the system administrator to limit either a particular process, a particular user or a particular jail to for example 30% CPU.
BHyVe BIOS emulation to boot legacy systems
Implement BIOS emulation on BHyVe hypervisor, to make BHyVe able to support more guest OSes.
Automated Kernel Crash Reporting System
This project aims to develop a system for automated kernel crash reports for the FreeBSD Operating System. This includes the creation of a crash reporter program specifically for the FreeBSD kernel, and a service that receive those data, store them in a database according to some rules, and present them via two different web pages. One for the community, and one for the developers of the FreeBSD Project.
NTFS for FreeBSD