LWN.net Logo

Distributions

News and Editorials

Debian GNU/kFreeBSD: one more step towards a universal operating system

April 22, 2009

This article was contributed by Koen Vervloesem

One of the strengths of the Linux ecosystem is freedom of choice. The Debian distribution has given its users one more freedom: to choose between the Linux and FreeBSD kernels under the hood, with the same Debian GNU user space applications whichever is chosen. The idea goes back ten years, but it is finally coming to fruition now that two new architectures, kfreebsd-i386 and kfreebsd-amd64, have been added to the unstable and experimental archives of Debian.

The project was first announced in the Debian Weekly News for February 22nd, 1999:

Someone proposed a Debian distribution based on FreeBSD. There was considerable debate on this topic. Most of the favorable opinions expressed were based on the argument that there should be a Debian distribution for as many open source UNIX variants as possible. This was countered with the argument that this would drastically increase the workload of the package maintainers.

Shortly thereafter a plain FreeBSD port of Debian was started, with a FreeBSD kernel and FreeBSD libc under a GNU user space. To not diverge too much from the GNU/Linux architecture, the developers of the project used GNU utilities, but they quickly found out that a lot of packages needed patches because the FreeBSD libc did not provide the same extensions as GNU libc.

So after a while came the idea to port GNU libc to the FreeBSD kernel. This was done mostly by Bruno Haible in 2002, which is when the project took the shape (and name) it has now. Port maintainer Aurélien Jarno looks back at this time:

At this moment, Robert Millan suggested to add a 'k' in front of FreeBSD to form GNU/kFreeBSD meaning "kernel of". It is a way to show that except a few low level userland utilities, we are using only the kernel and not the C library of FreeBSD. In the same way a GNU/Opensolaris port is in development (Nexenta), and a GNU/kOpenSolaris port has been started recently now that GNU libc has been partly ported to the OpenSolaris kernel, solving licensing issues.

Switching to the GNU libc port has brought better compatibility with the Debian packages and, once that happened, a lot of packages were able to be built without any changes. The project got the name Debian GNU/kFreeBSD. To summarize, Debian GNU/kFreeBSD is a port that consists of a GNU user space using the GNU C library and Debian package management and system tools on top of FreeBSD's kernel. The latest Debian GNU/kFreeBSD is based on the upstream FreeBSD 7.1 kernel with a few patches.

GNU and BSD: a strange marriage

But why have the developers made such a strange chimera, a combination of a BSD kernel and a GNU user space? Is this a "because we can" project? Obviously, the developers have heard this question countless times, and the wiki lists some valid reasons why a user could prefer Debian GNU/kFreeBSD to FreeBSD or Debian GNU/Linux.

The "why" question breaks down into two questions. First, why would a user prefer Debian GNU/kFreeBSD to Debian GNU/Linux? First, the FreeBSD kernel has some nice and useful features, like the OpenBSD "pf" packet filter and "jails", a system-level virtualization feature. The developers also list cleaner kernel interfaces than Linux as an advantage, pointing to a single /dev implementation via devfs, as well as using OSS as the default sound system as examples.

Drivers can be another advantage. For example, the FreeBSD kernel has support for Windows NDIS drivers in the mainline kernel, whereas the NDISwrapper project will not likely make it into the mainline Linux kernel. The developers add: "The FreeBSD kernel might support some hardware which Linux does not support and/or the FreeBSD kernel support might be better (fewer bugs)." But, of course, this is a double-edged sword: Linux supports a lot of devices for which FreeBSD has no drivers yet.

Another interesting issue lies on the filesystem front: the Debian GNU/kFreeBSD developers say that due to licensing and patent issues, Sun's filesystem ZFS is unlikely to appear in the Linux kernel. However, now that Oracle is buying Sun, chances have improved that ZFS will get GPL-licensed. But whatever will happen, ZFS is also being ported to FreeBSD, so Debian GNU/kFreeBSD users will definitely see support for this interesting filesystem in the future.

Some of the reasons the developers give are less convincing. For example, they say: "kFreeBSD offers an alternative in case Linux is branded illegal by the SCO case or other threats. In legal terms, Linux sources are like a minefield. kFreeBSD is much less vulnerable to such attacks because of its less bazaar-like development model." Your author thinks this is very unlikely to happen.

The second part of the "why" question is: why would a user prefer Debian GNU/kFreeBSD to FreeBSD? This really comes down to preferences. Maybe the user likes the Debian package system more than FreeBSD ports, or prefers the GNU user space to the BSD world. The GNU versions of many commands are known to have more features. And at the non-technical level: Debian GNU/kFreeBSD follows the Debian Free Software Guidelines, whereas FreeBSD uses some non-free, binary-only drivers such as the ath driver for Atheros wireless chipsets. But all of this will most likely not convince BSD users to switch.

Working with Debian GNU/kFreeBSD

This all sounds interesting, but does it work in practice? The base system is fully functional and users can install Debian GNU/kFreeBSD by using the install notes. An ISO file for an install CD is available. Currently this is a version from January 2009, but users can add a Lenny-based snapshot to /etc/apt/sources.list.

The current installation CD is based on a hacked FreeBSD sysinstall, so at this moment, the installation is not straightforward for users without any FreeBSD experience. Moreover, this only works more or less correctly for standard installations. This is a temporary solution until the debian-installer is fully ported to Debian GNU/kFreeBSD. Luca Favatella, a computer engineering student at the University of Catania in Italy, will implement this as part of Google Summer of Code 2009. As part of his proposal, which has been accepted at GSOC, he will not only port debian-installer to GNU/kFreeBSD, but he will also make debian-installer less dependent on Linux: at this moment it uses many Linux-specific constructs (e.g. udev) or assumes Linux structures (e.g. setting up partitions with LVM).

Most of the core packages in Debian unstable are ported to Debian GNU/kFreeBSD. Looking at all of the architecture-independent source packages, the developers have currently ported over 80% of the 7800 source packages. Of course not all of them have been tested. There is still a large amount of packages that need fixing. The developers have a list of common practices and problems found when porting to GNU/kFreeBSD. According to Jarno, a lot of porting is rather simple (but boring). For example, support for detecting GNU/kFreeBSD was added more than six years ago to autotools, but a lot of software is still using an older version. He adds: "Also a lot of software is using #ifdef __linux__ to detect if they are using a GNU libc. This is clearly wrong, and this is also one of the more repetitive changes to make."

Several high-profile packages aren't ported yet. For example, OpenOffice.org is missing. But Jarno sees no fundamental problems for this port to happen: "There is no reason it would not work, but it is a huge task given the size of Openoffice.org sources. All the build dependencies are available, so it's mainly about tweaking the hundreds of autodetection scripts that do not know about GNU/kFreeBSD."

Wireless networking works in Debian GNU/kFreeBSD, but there are no tools to scan for networks yet. The problem is that NetworkManager is really tightly coupled to HAL, which was not available on FreeBSD. Jarno explains: "Though it has been originally designed for being portable across operating systems, a lot of kernel-specific code had to be written." However, now that HAL has been ported to FreeBSD, it should not be a big deal to get NetworkManager working. As upstream FreeBSD is doing the porting work (as a Google Summer of Code project), Debian GNU/kFreeBSD will surely get NetworkManager support in the near future.

There is a core of about 5 to 8 developers working on the Debian GNU/kFreeBSD port, but as with any open source project a lot of other people are also helping to a smaller extent. That includes package maintainers who want their package to work on the system. The project provides Debian Developer accessible machines running GNU/kFreeBSD for this purpose. Jarno estimates that about 50 people are using Debian GNU/kFreeBSD almost daily, and that a lot of people are following the development more or less closely: "We hope to see this number increasing now that it is being integrated as an official Debian architecture."

With Debian GNU/kFreeBSD, the Debian project has taken one more step towards its vision as a universal operating system. It's unique to have a platform supporting two different kernels, while the user space remains largely unchanged. Of course there's also Debian GNU/Hurd, but this still has not been officially released, and the Hurd kernel itself is still relatively immature. Debian GNU/NetBSD is still in an early stage of development. The ultimate aim is Debian GNU/Any, where the user space is abstracted completely from the running kernel with glibc. When this is possible, Debian binaries would be binary compatible with any kernel supported on Debian GNU/Any through the glibc abstraction. This total decoupling of user space and kernel will give users even more choice.

Comments (15 posted)

Annual Distribution List update

By Rebecca Sobol
April 22, 2009

It's time for our annual update on the state of the LWN Distributions List. The last update was April 17, 2008. Since then we've added 54 distributions and deleted 52 distributions.

Last year we had 485 active distributions and 58 in the historical section for a total of 543 distributions. Historical distributions are no longer actively developed, but some source code should be available. There are usually quite a few historical distributions in the active sections, though. Sometimes it's hard to tell.

Link checking is a slow process and a low priority task. This year you should find the front part of the List, Leading through the Country-specific sections to be fairly up-to-date. The Embedded through the end of the list are moldier. So this year we see an increase in the historical distributions now at 85, compared to 460 active distributions for a total of 545 distributions currently on the list.

The distributions removed in the last year are (in no particular order): Tao Linux, Cobind Desktop, BearOps, Linare Linux OS, Santa Fe Linux, SLYNUX, Underground Desktop, WinLinux, RedIce-Linux, EtLinux, Tynux, RedBlue Linux, QiLinux, Aurox Linux, Buffalo Linux, DCC Alliance, UserLinux, Arabian Linux, Eadem Enterprise Linux, FullPliant, GenieOS, MitraX, Nitix, NixOS, OEone HomeBase, Peachtree Linux, Tomahawk Desktop, Xline, College Linux, Eagle Linux, elpicx, kmLinux, Tadpole Linux, tuXlab GNU/Linux, APLINUX.com.br Mail server, Console Linux, SACIX, Chinese 2000 Linux, ThizLinux, Tom Linux, XTeamLinux, Resala Linux, Echelon Linux, PunLinux, HOLON Linux, LASER5, WOWLinux, MCNLive, Pingwinek GNU/Linux, Castle, Linux ESware, and LinEspa.

Our list only includes distributions using a Linux kernel. There are no BSD or OpenSolaris based projects, even though we do cover these distributions on this page. As always, let us know if you encounter dead links or would like a project to be added to the list.

Comments (none posted)

New Releases

Announcing the Release Candidate for Ubuntu 9.04

The release candidate for Ubuntu 9.04 has been announced. "The Ubuntu team is pleased to announce the Release Candidate for Ubuntu 9.04 Desktop and Server editions and Ubuntu Netbook Remix. Codenamed "Jaunty Jackalope", 9.04 continues Ubuntu's proud tradition of integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution. We consider this release candidate to be complete, stable, and suitable for testing by any user."

Full Story (comments: 10)

Announcing the Release Candidate for Ubuntu 9.04 on ARM

The Ubuntu team has announced the Release Candidate for Ubuntu 9.04 (Jaunty Jackalope) Desktop edition for the ARM architecture. "This first, community-supported ARM release of Ubuntu targets the i.MX51 Babbage development board and is suitable for use by developers wishing to bring the same high-quality Ubuntu desktop to an even wider range of energy-efficient systems."

Full Story (comments: none)

Announcing Sugar on a Stick Beta 1

The SoaS team has announced the release of Sugar on a Stick Beta-1. "There has been impressive progress over the last few weeks; many thanks all the people who contributed their time and effort." Click below for more information.

Full Story (comments: none)

Fedora Unity Releases F10 Re-spins

The Fedora Unity Project has announced the release of new ISO Re-Spins of Fedora 10. These Re-Spin ISOs are based on the officially released Fedora 10 installation media and include all updates released as of April 14, 2009.

Full Story (comments: none)

Distribution News

Debian GNU/Linux

Bits from the (re-elected) DPL: delegation

Steve McIntyre, re-elected Debian Project Leader, looks at delegations for the coming year. "So, onto the boring stuff. I hereby formally delegate Luk to be assistant DPL this year while I'm DPL. As far as is practical, we will share all the DPL's duties and responsibilities; we will both receive leader@ mail, and we both get to see all tickets in rt.debian.org. We intend to work as a team, but I'll get to have the last say and take the blame for any mistakes we make."

Full Story (comments: none)

Bits from the 2nd Debian Groupware Meeting

Last year the Debian Groupware Meeting was held in the LinuxHotel, Essen, Germany. Click below for a short summary what happened during the weekend.

Full Story (comments: none)

Gentoo Linux

Gentoo Council Summary

Click below for a summary of the April 9, 2009 meeting of the Gentoo Council. Topics include Migration of KEYWORDS out of ebuilds, EAPI 3 features block, and EAPI 3 updates.

Full Story (comments: none)

SUSE Linux and openSUSE

openSUSE Google Summer of Code Accepted Projects Announced

Google has announced the accepted projects for all of the Google Summer of Code organizations. The openSUSE Project has nine projects that were accepted for the Summer of Code 2009. Click below for openSUSE's list.

Full Story (comments: none)

openSUSE Community Week Coming May 11 through May 17

openSUSE Community Week has been announced. Community Week aims to show users in the openSUSE community how they can become contributors, and to help existing contributors become more effective.

Comments (none posted)

Distribution Newsletters

DistroWatch Weekly, Issue 299

The DistroWatch Weekly for April 20, 2009 is out. "It's the Ubuntu release week (or Ubuntu "circus", as some prefer to call it), a major event in the calendar of many open source software enthusiasts. What will the distribution's 10th official release be like? And will the download servers cope with the expected heavy demand? We'll have to wait until Thursday to find out; in the meantime, read below for a quick tip on reverting to an older kernel under Ubuntu and visit Canonical's ShipIt service to order your free CDs. In the news section, Mandriva gains support for hardware database known as Smolt, Easy Peasy ponders a few ideas concerning the distro's default user interface, and Fedora's Ricky Zhou points out the importance of innovation in Red Hat's community distribution. Finally, don't miss our feature article which calls for an implementation of a centralised bug-tracking database for all open source software projects. Happy reading!"

Comments (none posted)

Fedora Weekly News #172

The Fedora Weekly News for the week ending April 19, 2009 is out. "This week Announcements rubs its hands with glee over the "Fedora 11" freeze. Similarly Artwork enthuses about "Fedora 11 Landing" with great Leonidas themes including a surprise for wide-screen setups. Developments gushes about "Presto and DeltaRPM Status" and SecurityWeek asks the interesting question "Who in the Linux World Would be Responsible for a Worm?". SecurityAdvisories faithfully lists updates that might just help avoid that worm. With a red face we draw your attention with an Erratum to last week's missing QualityAssurance beat. This week's QualityAssurance beat "Test Days" advertizes the upcoming minimal installation testing and reports in "Weekly meetings" that PulseAudio issues with snd-intel-hda and snd-intel8x0 are resolved. Translation reports on the availability of a bulky "Fedora 11 Installation Guide Ready for Translation". The FedoraWeeklyWebcomic joins us again and Ambassadors shares a neat list of LinuxFestNorthWest talks by Fedora folk."

Full Story (comments: none)

The Mint Newsletter - issue 81

This issue of the Mint Newsletter covers the release of Mint 6 KDE and Fluxbox Community editions, the special Google search in Mint will be tweaked - it is a major source of income and a minor source of irritation so we will do something about it and Twitter for Linux Mint (quick news).

Comments (none posted)

OpenSUSE Weekly News/68

The issue of the OpenSUSE Weekly News covers Call for Participations: openSUSE Summit 2009, openSUSE at LinuxFest Northwest, People of openSUSE: Jean-Daniel Dodin, Google Summer of Code Status Update, Bryen Yunashko: Accessible Appreciation: The Sequel, and more.

Comments (none posted)

Ubuntu Weekly Newsletter #138

The Ubuntu Weekly Newsletter for the week ending April 18, 2009 is out. "In this issue we cover: Announcing Ubuntu 9.04 RC, Announcing Ubuntu 9.04 RC for ARM, Packaging Training Session Update, Announcing Ubuntu Open Week, New Ubuntu Members, Japanese Team release party, Philippine Ubuntu Release Party, Launchpod #18, Karma: Where did mine go, Ubuntu Forums Interview: Codename, Jorge Castro: Support your LoCo economy, Sayak Banerjee: KDE Brainstorm - 30 Days, 700 ideas, Ubuntu-UK podcast: The Waking Ally, Systerm76: Ubuntu PC Maker's revenue up 61 Percent, Open-source server distro that builds on Ubuntu, Server Meeting Minutes: April 14th, and much, much more!"

Full Story (comments: none)

Distribution meetings

openSUSE Summit CFP Announced

The openSUSE Project has opened the call for participation in the openSUSE Summit 2009, to be held September 17 through 20 in Nuremberg, Germany. "We're looking for contributors to openSUSE, upstream projects, and members of the openSUSE community to participate." All proposals must be submitted by May 20, 2009.

Comments (none posted)

Interviews

Interview with Ricky Zhou - Fedora Project (How Software is Built)

How Software is Built talks with Ricky Zhou. "I'm currently a freshman at Carnegie Mellon University. I've been contributing to Fedora since about March of my junior year. I'm mostly involved with the infrastructure team, which runs the servers that run Fedora and I'm kind of the leader of the website team, which is where I started out. I also do some packaging, among other things."

Comments (none posted)

Distribution reviews

The five best, new things in Ubuntu Linux 9.04 (ComputerWorld)

Stephen J. Vaughan-Nichols reviews Ubuntu Linux 9.04 on ComputerWorld. "1) X.Org server 1.6/GNOME 2.26. The first part gives you peppier video performance, while the second gives you a really, nice integrated desktop. Particularly nice features include the integration of the Brasero CD/DVD burner with all other Gnome applications and improvements with both audio, PulseAudio, and multiple monitors control and support."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds