Benchmarking Debian's GNU/kFreeBSD
There has been an effort underway within the Debian development community to pull the FreeBSD kernel within this distribution to provide an alternative to using the Linux kernel. In essence with this Debian GNU/kFreeBSD project you have the standard Debian package set providing a GNU user-land with a GNU C library, but the FreeBSD kernel is running underneath. The Debian project has also been working on Debian GNU/Hurd to effectively do the same thing but with the GNU Mach microkernel. But unlike Debian GNU/Hurd, with the release of Debian 6.0 "Squeeze", Debian GNU/kFreeBSD will reach a release status. With the Debian Squeeze release being just two months away we have decided to provide the first public set of benchmarks that compare the Debian GNU/kFreeBSD performance to that of Debian GNU/Linux. We have tested both the 32-bit and 64-bit builds of Debian with the Linux and FreeBSD kernels.
For over a month we have been seeking to provide benchmarks of Debian GNU/kFreeBSD, but now it has finally reached a point where we feel comfortable with benchmarking this FreeBSD kernel in Debian. Until the release of Debian 6.0, Debian GNU/kFreeBSD is just available using bootable daily images found at d-i.debian.org within the kfreebsd-i386 and kfreebsd-amd64 directories. There is no Debian GNU/kFreeBSD support at this time for ARM, PowerPC, or other architectures. Some of the initial challenges we faced with this Debian FreeBSD variant was the installer not working properly and running into other problems, but recent builds seem to be working much better than in past weeks. Installing GNOME on Debian GNU/kFreeBSD is working quite well too through the Debian package repository. About the only outstanding problem we have at this point is NVIDIA's binary FreeBSD driver not working with Debian GNU/kFreeBSD.
The current kfreebsd-i386 and kfreebsd-amd64 ports provide the current Debian Squeeze package set except for a few differences and then some of the FreeBSD utilities. The FreeBSD kernel at this point is based upon FreeBSD 7.2, but not yet the FreeBSD 8.0 kernel. We suspect the FreeBSD 8.0 kernel will be added following the release of Squeeze. The default file-system that Debian GNU/kFreeBSD is using for this port is UFS. ZFS support is available within the FreeBSD 7.2 kernel, but there is currently no Debian user-land support for this popular Sun file-system.
Some of the benefits of using a FreeBSD kernel in Debian over Linux include the more standard kernel interfaces in BSD, security features like Jails, potential ZFS support, and other features. Using Debian GNU/kFreeBSD over just FreeBSD, PC-BSD, or another FreeBSD derivative allows the user to take advantage of the Debian package system along with some other benefits. These matters are discussed within the why Debian GNU/kFreeBSD page. The official ports page for Debian GNU/kFreeBSD is found at Debian.org. This project is similar to Nexenta Core Platform and StormOS that seek to provide a GNU user-land provided by Ubuntu atop Sun's OpenSolaris kernel. Besides Debian GNU/kFreeBSD and Debian GNU/Hurd, there is also a Debian GNU/NetBSD port that's using the NetBSD kernel on i386 and Alpha platforms, but this port shares a similar fate to the Hurd kernel project.
We tested out Debian GNU/Linux 32-bit, Debian GNU/Linux 64-bit, Debian GNU/kFreeBSD 32-bit, and Debian GNU/kFreeBSD 64-bit using the latest Debian packages as of 2010-01-14. The test system we used for this inaugural Debian GNU/kFreeBSD benchmarking was a Lenovo ThinkPad T61 notebook that packs an Intel Core 2 Duo T9300 processor, 4GB of system memory, Hitachi HTS72201 Serial ATA 2.0 100GB hard drive, and a NVIDIA Quadro NVS 140M 512MB graphics processor. Due to the NVIDIA proprietary driver not yet working with Debian GNU/kFreeBSD and then there would be problems anyways running the FreeBSD 7.2 kernel in its 64-bit variant with NVIDIA's binary driver (though that's fixed with 64-bit FreeBSD 8.0), we had not carried out any OpenGL / graphics tests in this article.
For benchmarking Debian with the Linux and FreeBSD kernels we had used our Phoronix Test Suite testing software. The Phoronix Test Suite is licensed under the GNU GPLv3 and provides a framework to carry out automated testing, performance profiling, and other leading capabilities. The Phoronix Test Suite as of the Phoronix Test Suite 2.4 Beta 1 release properly supports debian GNU/kFreeBSD. The test profiles within the Phoronix Test Suite that were used for this Debian Squeeze testing was SQLite, timed ImageMagick compilation, x264, 7-Zip compression, Gzip compression, LZMA compression, GnuPG, Gcrypt, POV-Ray, C-Ray, John The Ripper, dcraw, timed MAFFT alignment, Sudokut, Himeno, Threaded I/O Tester, PostMark, Bullet Physics, and NASA's NAS Parallel Benchmarks.
Debian GNU/Linux was using the Linux 2.6.30 kernel while Debian GNU/kFreeBSD was using the 7.2-1 kernel. The user-land is effectively the same between the Linux and kFreeBSD variants with it being the GNOME 2.28.2 desktop, X Server 1.6.5, and GCC 4.3.4. The Debian GNU/kFreeBSD installation was using the stock UFS file-system while the Debian GNU/Linux installation defaults to EXT3. A clean installation of Debian was carried out each time with the respective media and each installation was left with their default configuration options.