This site attempts to hold some information about Glibc-based GNU/k*BSD systems.


1. What is Glibc-based GNU/k*BSD?

GNU/k*BSD generaly means a variant of the GNU operating system that uses a kernel from one of the *BSD systems. This typically means FreeBSD's kernel or NetBSD's kernel. This is not exactly analogous to GNU/Linux, since FreeBSD and NetBSD are complete OSes with their own C libraries and userland, not just kernels like Linux. Therefore we use a "k" prefix as an abbreviation of "kernel of". So for example "kFreeBSD" means the same as "kernel of FreeBSD" or "FreeBSD's kernel". Then "GNU/kFreeBSD" means a variant of GNU that uses the kernel of FreeBSD.

We precede it with "Glibc-based" when we want to indicate the obvious, as opposed to other GNU/k*BSD systems based on *BSD's C libraries.

2. How does Glibc support *BSD's kernels?

Experimental support for kFreeBSD and kNetBSD was initially written by Bruno Haible and Momchil Velikov, respectively.

This Glibc-BSD project at Savannah pretends to continue Bruno's and Momchil's work so that k*BSD support in Glibc may be kept up-to-date and, someday, be ready for integrating in official Glibc's sources. We need help from anyone with a bare minimal knowledge on Glibc and/or *BSD's kernel interfaces. Send a mail to the mailing list if you wish to participate.

3. What distributions of Glibc-based GNU/k*BSD are around?

At this time, the Debian project is the only distribution interested on providing k*BSD-based ports of their software.

The only Glibc-based port is currently Debian GNU/kFreeBSD. The Debian maintainers working on that port are also looking for help with porting tasks. If you have some basic C and general UN*X knowledge, and would like to participate, have a look at their site. ("How to help" section)

Support for kNetBSD in Glibc is even more inmature, but a Glibc-based Debian GNU/kNetBSD experimental distribution might be available at some point.

As a sidenote, I recieved some feedback from FreeBSD developers indicating interest in adding Glibc to the FreeBSD Ports Collection, in order to use it as a replacement for their GNU/Linux binary emulation. If you are maintainer of FreeBSD ports, and are interested on that, please drop us a note as we'd like to hear about it (and maybe help on whatever requisites you have)

4. Are you reachable through IRC?

Yes. We're in #gnu-kbsd at the Freenode network.

5. I want to make sure my programs will run on Glibc-based GNU/k*BSD, is there something i should know?

Yes. It isn't really hard to support GNU/k*BSD, since we use the same C library as GNU/Linux. There are just some configuration issues:

- Always try to use autoconf to check for features instead of reliing on hardcoded system checks (e.g: uname)
- If you write Glibc-specific code, don't check for Linux, check for Glibc.
- You can check for Glibc in a minimaly sane way using __GLIBC__ macro in features.h or with 'case `uname -s` in Linux|GNU|GNU/*)'
- In case you need to use it, our system triplet is "*-k*bsd*-gnu"

6. Why are you doing all this?

Each developer has his/her own motivations, but if someone is working on GNU/k*BSD it typicaly just means the obvious: he/she likes GNU userland and also likes *BSD's kernels. You can draw a similar conclussion for people working on Debian GNU/k*BSD.