Debian GNU/kFreeBSD
apt-get install freebsd?

Axel Beckert

Debian / ETH Zurich

abe@debian.org
http://noone.org/abe/

Jehova!

  • Yes, it's a bastard.
  • Open Source at it's best: Take two existing things and combine them to something new.

Overview

  • What is it exactly? What does the name stand for?
  • Why?
  • Comparison with Debian GNU/Linux and FreeBSD
  • Similar Projects
  • Typical Issues Developers had
  • What's still missing?
  • The Future
  • Contact / Resources

What is Debian GNU/kFreeBSD exactly?

  • It's a port, it's its own architecture, i.e. including build daemons and porter machines.
  • (Well, two ports/architectures: kfreebsd-i386 and kfreebsd-amd64 for now, short k-i and k-a)
  • Since April 2009 it's part of the official Debian archive. Was hosted at Debian-Ports.org before.
  • Released with Debian 6.0 Squeeze as Technology Preview just hours ago.
  • You cannot have Linux and kFreeBSD kernel in the same installation or switch between them
  • So it's not as easy as "apt-get install freebsd", but "apt-get install kfreebsd-source-$version" works though, also on Debian GNU/Linux since 4.0 (Etch). :-)

What does the name stand for?

  • Debian: DFSG, dpkg, apt, D-I, rock-solid stable releases
  • GNU: (e)glibc, userland (coreutils, etc.)
  • kFreeBSD: rock-solid FreeBSD kernel (hence the "k") plus some kernel/fs related tools
    • Started with FreeBSD kernel 5.x around 2005
    • Currently supports 7.3 (Sid) and 8.1 (Sid, Squeeze, D-I)

Why?

Why not a BSD libc?

  • Adapting the libc to the kernel is way less work than patching thousands of packages to work with another libc, too.
  • Debian GNU/NetBSD and GNU/FreeBSD (no "k") tried this and failed.

GNU/kFreeBSD compared with Linux has:

  • Cleaner standard kernel interfaces in FreeBSD:
    • /dev
    • OSS
    • less bazaar-like development model
    • more stability
  • Features you don't get with Linux:
    • pf
    • ZFS (also for /, supported by GRUB2 and D-I)
    • Jails
    • dtrace
    • NDIS drivers in mainline kernel
  • Less or less featureful packages due to software using Linux-only stuff (ALSA, libiw, inotify, etc.).

GNU/kFreeBSD compared with FreeBSD has:

  • dpkg, apt and family
  • all software coming in precompiled binary packages
  • no rolling releases in ports/packages
  • similar amount of ports/packages
  • no non-DFSG-compliant binary-only drivers in the kernel

Similar Projects

Typical Issues Developers had

  • Wrong build-dependencies
  • outdated config.sub, config.guess
  • kfreebsd-only race conditions
  • Bootstraping the port, first installer was a raped FreeBSD installer
  • Porter machines without Debian Stable (First Unstable, then Testing, soon Stable)

What is still missing?

  • FUSE userland utilities
  • IPv6 glue for "route", etc.
  • Bluetooth, inotify-kqueue compatibility layer, etc.
  • Some less important FreeBSD-specific tools like moused, etc. (vidcontrol is now available)
  • Automatic loading of non-free firmware
  • < 14% of the packages (stalled there, 16-18% one year ago)

The Future

  • kfreebsd-mips in the makes
  • Not yet planned but theoretically possible: kfreebsd-sparc[64], kfreebsd-powerpc, kfreebsd-arm, etc.)

Contact / Resources

Thanks

  • Marius Nünnerich and Thorsten Glaser for the idea to this talk
  • Petr Salinger, Aurelien Jarno, Björn A. Zeeb, Guillem Jover, Witold Baryluk and Cyril Brulebois for proof-reading these slides, comments and suggestions on short notice :-)
  • Eric A. Meyer for S5
  • You for listening