As probably everyone knows by now, Google Summer of Code 2011 is announced! As in previous years, FreeBSD is expected to have a presence and this is a great opportunity for every student interested in FreeBSD to get involved and get payed doing so! FreeBSD has a pile of ideas page and I'd like to promote some of those I think are interesting.
I have been in GSOC a number of times but I won't be eligible any more so I'm encouraging others to apply for the program! It's been very interesting working on various parts of FreeBSD.
Some of the ideas from the ideas page I'd personally like to see implemented are:
- File systems: Finish porting FUSE to FreeBSD - FUSE is one of the greatest thing in Linux, allowing very easy access to file-system-like functions, which includes mounting ssh/sftp servers, its usage by Gnome and others for desktop integration and many others. It just requires finishing to make it stable on FreeBSD.
- File systems: Port NILFS to FreeBSD - FreeBSD is, compared to Linux, very poor in the number of supported file systems. Basically, the two generally usable ones are UFS and ZFS, and while they are great, there isn't a file system that is between those two in complexity. NILFS is a log-based file system which aims to be very efficient on SSDs but also classical disks. It would also be great if other file systems (like XFS) were ported or their ports finished.
- Kernel: Avoiding syscall overhead - this would speed up some simple syscalls which are commonly used.
- Kernel: A BSD (re)implementation of the BFS scheduler - FreeBSD's schedulers are ULE and 4BSD and they are fairly complex. Maybe an implementation of a much simple principle would show better performance, especially for desktop users. BFS is one such attempt. Alternatively, NetBSD's SCHED_M2 might be worth porting.
- Kernel: Finish porting KVM (virtualization) - FreeBSD lacks serious virtualization support, and a port of KVM has been attempted before. KVM is very popular and has a large number of projects built on top of it.
There are many more ideas on the wiki, some of which are outdated and need cleanup, but it's highly likely that interested students can find something to work on!