GSoC 2012 FreeBSD projects announced

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
Aleksander Dutkowski
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
Alexander Pronin
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
Davide Italiano
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
Efstratios Karatzas
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
Eric McCorkle
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
Greg Miller
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
Jakub Klama
This project aims to clean up and refactor FreeBSD/arm and Flattened Device Tree implementation code.

Improve BSD-licensed text processing tools.
Jesse H.
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]
Jonathan Calmels
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)
Monty Chaney-Geib
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
Rudolf Tomori
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
Takuya ASADA
Implement BIOS emulation on BHyVe hypervisor, to make BHyVe able to support more guest OSes.

Automated Kernel Crash Reporting System
Tzanetos Balitsaris
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

Miscelaneous News Links: auditdistd, Xorg, Linuxulator, OpenSSH


The auditdistd project is complete. Pawel Jakub Dawidek provides the following report regarding the project: auditdist project completed.

Xorg 7.5.2

The Xorg Team has announced the next round of Xorg updates. Phoronix’ analysis here.

Linuxulator and Linux Base

‘This week­end I made some progress in the lin­ux­u­la­tor‘.


OpenSSH 6.0 has just been released.


FreeBSD 8.3-RELEASE Announcement

The FreeBSD Release Engineering team has announced the availability of FreeBSD 8.3-RELEASE. This is the fourth release from the 8-STABLE branch which improves on the functionality of FreeBSD 8.2 and introduces some new features.

Some of the highlights:

  • usb(4) now supports the USB packet filter;
  • TCP/IP stack now supports the mod_cc(9) pluggable congestion control framework;
  • graid(8) GEOM class added to support various BIOS-based software RAID controllers (replacement for ataraid(4));
  • ZFS subsystem updated to SPA version 28;
  • GNOME version 2.32.1,
  • KDE version 4.7.4.

For more information check out the  8.3 release announcement and the detailed detailed release notes.

DTrace on FreeBSD (video)

This is a video presentation on the status of dtrace on FreeBSD.

DTrace, also known as Dynamic Tracing, was developed by Sun™ as a tool for locating performance bottlenecks in production and pre-production systems. It is not, in any way, a debugging tool, but a tool for real time system analysis to locate performance and other issues.

DTrace is a remarkable profiling tool, with an impressive array of features for diagnosing system issues. It may also be used to run pre-written scripts to take advantage of its capabilities. Users may even author their own utilities using the DTrace D Language, allowing them to customize their profiling based on specific needs.” (source)

Miscelaneous FreeBSD news updates (Go, nFore, NRPE, FUSE, Capsicum, KFreeBSD, GhostBSD)

Below you will find some links to recent news articles and blog posts relating to FreeBSD, it’s development and future that I hadn’t linked to yet. If you’re anything else noteworthy, please let us know.

Google says ‘Go’ to new programming language

Binaries have been released for Windows, Linux, FreeBSD and OS X. Google announced the first stable release of its new programming language — dubbed “Go“. More.

HowTo: nForce2 sound on FreeBSD

I finally got around to replace the northbridge fan of my ABIT AN-7 powered desktop and with it boot its old FreeBSD 7.4-STABLE install. Though I have a Creative SoundBlaster Audigy 4 I wanted to make sure I could go by with just the motherboard’s nForce2 integrated sound system, so I’ll explain how to enable the nForce2 sound on FreeBSD.

Installing NRPE on FreeBSD 9.0

NRPE is an addon that allows you to execute plugins on remote Linux/Unix hosts. This is useful if you need to monitor local resources/attributes like disk usage, CPU load, memory usage, etc. on a remote host.

With FreeBSD, there are at least two advantages to installing NRPE from the official FreeBSD ports.

First, the source code file in FreeBSD ports is already modified to work with FreeBSD. Second, FreeBSD ports contains many FreeBSD-specific plugins that can be used with the FreeBSD version of NRPE. More

FUSE For FreeBSD Nearing Completion

Porting FUSE to a FreeBSD kernel module has been a long-time coming. The FreeBSD FUSE kernel module port originally began as a Google Summer of Code project, but it wasn’t successful. In 2011, work on the port was restored via another year with Google Summer of Code, but at the end of the summer the FreeBSD FUSE implementation was still unstable and suffered data corruption issues. Now it seems that FreeBSD FUSE is finally getting hacked into shape and may be committed in the coming days. More

Cambridge’s Capsicum Framework Promises Efficient Security For UNIX/ChromeOS

“Communications of the ACM is carrying two articles promoting the Capsicum security model developed by Robert Watson (FreeBSD — Cambridge) and Ben Laurie (Apache/OpenSSL, ChromeOS — Google) for thin-client operating systems such as ChromeOS. They demonstrate how Chrome web browser sandboxing using Capsicum is not only stronger, but also requires only 100 lines of code, vs 22,000 lines of code on Windows! FreeBSD 9.0 shipped with experimental Capsicum support, OpenBSD has patches, and Google has developed a Linux prototype.”

While the ACM’s stories are both paywalled, the Capsicum project itself has quite a bit of information online in the form of various papers and a video, as well as links to (BSD-licensed) code and to various subprojects. (via)

Debian: kFreeBSD 9.0 Kernel Competing Against Linux 3.2

The Debian GNU/kFreeBSD project has been quite interesting as one of the official Debian operating system ports. Debian GNU/kFreeBSD pairs the FreeBSD kernel with the Debian GNU user-land so that users can enjoy their traditional Debian applications while taking advantage of the FreeBSD kernel. With the recently released FreeBSD 9.0 kernel having worked its way into Debian Wheezy, how is the FreeBSD 9.0 kernel performance compared to the Linux 3.2 kernel? This Phoronix article provides those benchmarks and this one on OpenBenchmarks.

GhostBSD 2.5 Review

GhostBSD is a desktop distribution based on FreeBSD. It comes as an installable Live DVD image and is developed by Eric Turgeon and Nahuel Sanchez. The latest edition, GhostBSD 2.5, based on FreeBSD 9, is the project’s fourth release, and was made available for public download on January 24 (2012).

This article provides the first review of this distribution on this website, and it is based on test installations of the 32-bit version.

This article provides the first review of this distribution on this website, and it is based on test installations of the 32-bit version. The boot menu is shown below.

FreeBSD ZFS root install with bsdinstall (video)

This video shows how to install a full ZFS system using bsdinstall, on FreeBSD 9.0-RELEASE. This is not like other tutorials where you just use the FreeBSD ISO as a live cd and then do everything manually, with this method you only have to set up the zfs zpool manually. The rest, user settings, network, time zone, etc is done by bsdinstall for your convenience.

The Z file system, developed by Sun™, is a new technology designed to use a pooled storage method. This means that space is only used as it is needed for data storage. It has also been designed for maximum data integrity, supporting data snapshots, multiple copies, and data checksums. A new data replication model, known as RAID-Z has been added. The RAID-Z model is similar to RAID5 but is designed to prevent data write corruption.

FreeBSD Foundation accepting funding proposals

The FreeBSD Foundation is soliciting the submission of proposals for work relating to any of the major subsystems or infrastructure within the FreeBSD operating system. Proposals will be evaluated based on desirability, technical merit, and cost-effectiveness.

Details regarding the proposal process are contained in the Proposals Call for Submission PDF (PDF)

If interested, important dates to mark are:

  • March 12: Call for proposals begins
  • April 30: Deadline for proposal submission
  • May 30th: Notification of acceptance/denial

Call for testing (CFT): BHyVe, GEM/KMS, KDE 4.8.2, KDevelop

Newly written code should be tested properly before it’s distributed widely. Programmers working on *BSD code pride themselves in writing and distributing quality code, but peer reviews and quality testing will always be necessary.

Every now and then you may come across Calls For Testing (CFT). Below you will find four links to recent CFTs.

I. Hands-on BHyVe

BHyVe is a type 2 Hypervisor for FreeBSD and PC-BSD that is similar to Linux KVM and consists of the vmm.ko kernel module, a few support utilities and a library. Because these are all loadable external components, they can be easily packaged and installed on an unmodified host. A BHyVe guest must currently be built with a few FreeBSD-specific shims that expedited development but the code is fundamentally portable. With a little help, BHyVe could support unmodified guests and be ported to other operating systems thanks to its simple design and permissive license.

Visit the BHyVe page for more details and instructions.

II. Call for Testers: PC-BSD GEM/KMS Snapshot

A testing snapshot that integrates the new DRM/GEM/KMS work is now available to testers. Full post with details and discussions: Call for Testers: GEM/KMS Snapshot.

III. Qt 4.8.1 and KDE SC 4.8.2

“While we wait for the ports feature freeze to be over, we invite you to test the upcoming updates in the KDE land:

  • Qt 4.8.1;
  • PyQt4 4.9.1;
  • KDE SC 4.8.2.
$ svn co
# sh Tools/scripts/kdemerge -kmpq /usr/ports

Since Qt started using the raster graphics system engine by default (and the native one seems not to be an option anymore), you should add…


…to /boot/loader.conf.” (via FreeBSD KDE)

IV. Kdevelop 4.3.0 available for testing

“Thanks to the contribution of Luca Pizzamiglio, Kdevelop was updated to 4.3.0 in area51, and you’re free to test it:

$ svn co
# sh Tools/scripts/kdemerge -m /usr/ports
# portmaster devel/kdevelop-kde4

If no problems are found, it will probably be committed when KDE SC 4.8.2 comes to the tree.”  (via FreeBSD KDE)