The purpose of this page is to demonstrate that kfreebsd-i386 meets the [http://ftp-master.debian.org/archive-criteria.html archive criteria].

Requirements for architectures

Is port cursed?


Are machines available to general public?

The architecture is publicly available without NDAs via:

  1. http://www.ibm.com/

  2. http://www.hp.com/

  3. http://www.dell.com/

  4. etc ad nauseam

Is full source available?

Source of the whole port is available. Most of the packages use the same sources as the official Debian ports. A few packages that need to be patched are in a separate repository called unreleased until Debian maintainer merge the patch. Sources of those packages are also available.

There's support for emulating Linux-i386 binaries. However, it's not possible to use these as a base for our port.

Also, in case a knetbsd-i386 port ever existed, it would have the possibility to re-use our binaries, since kernel of NetBSD has kFreeBSD binary emulation.

What drawbacks does kFreeBSD binary emulation from a NetBSD kernel have? -- ajt@d.o

From http://www.netbsd.org/Documentation/compat.html#performance

"Since the only additional overhead is the mapping from emulated system calls to native NetBSD system calls, and the reformatting of any parameters, if needed, the performance is really, really good. A rough estimate would be at most a 1-2% performance impact; if you call 2% impact. This varies depending on which system calls a program uses. Most mappings take <1% of the time the actual syscall takes to run." -- rmh

Are there 3 or more developers (or n-ms) actively maintaining the port? Who are they?

The port is maintained by the following developers, who are familiar with arch-specific issues for this port:

  1. Robert Millan
  2. GuillemJover (Debian Developer)

  3. Aurelien Jarno (Debian Developer)
  4. Petr Salinger

What sort of architecture is this? Desktop/workstation? Mainframe/supercomputer? Embedded? Something else?

General purpose (like linux-i386).

Does it have any users? If a desktop system, are there Debian admins who run Debian systems on the arch? If an embedded system are there real systems shipping that a Debian port will be useful for? If a mainframe system are there real systems with many users that a Debian port will be useful for? Who are they?

As of 2006/03/17:

The port is being actively used at the following sites:

  1. [http://io.debian.net/ io.debian.net], with 37 users (check [http://io.debian.net/~rmh/usercount.cgi dynamic user counter]).

  2. friki.frikazos.com, with 12 users.

The following lists of users are available:

  1. http://buildd.net/cgi/archvote.phtml, lists 28 users.

  2. ["Debian GNU/kFreeBSD userlist"], lists 12 users (This list is deprecated in favour of the previous one, and currently has no duplicates.).
  3. [http://popcon.debian.org/ Popcon], lists 15 users.

Is there kernel and toolchain support? At what level? Are the latest versions supported, or are legacy releases required for compatability with some hardware? as the ABI stabalised, or are there major ABI changes coming up? Is the ABI stable enough to ensure users will be able just apt-get dist-upgrade from one version to the next?

The kernel is supported in upstream by the FreeBSD project as the main architecture. We are using a few patches to the kernel that are maintained by ourselves.

The GNU libc is maintained by ourselves. The ABI is stabilised and minor changes are handled using versioning. Therefore, users are able to just apt-get dist-upgrade to update their system and that will be the case in the future.

GCC is supported out of the box in upstream for the i386 part. We are maintaining the GNU/kFreeBSD part, it only consists of a few files in the gcc/config/ directory.

binutils is supported out of the box in upstream for the i386 part. We are maintaining the GNU/kFreeBSD part, it only consists of a few cases in the various scripts.

Libtool supported out of the box in upstream.

How do you install a system? (URL to a HOWTO)

[http://glibc-bsd.alioth.debian.org/doc/ Install guide]

Has a buildd been setup? How much of the archive has been built (count by source package, builds of old versions are fine for this case)?

Two buildds (for redundancy) are running for 6 months.

Currently 77.3% of the source package have been built. [http://unstable.buildd.net/buildd/kfreebsd-i386_stats.html Up to date value]

Why has 23.2% of the archive failed to build? -- ajt@d.o 

Frequent failure reasons

What hardware is potentially available as a fast buildd?

Currently the two buildds (an Athlon XP1800+ / 512MB RAM and a Sempron 2500+ / 512MB RAM) are building package during 15% of the time for each.

If you have a lot of money, yes you can have faster hardware, for example a Pentium Extreme Edition 955, or an Athlon 64 X2 4800+. You can even use a multi-processor Intel Xeon system or a multi-processor AMD Opteron system.

Is there any corporate support of this arch, and the Debian port in particular?

The following companies are providing corporate support for this architecture:

  1. http://www.ibm.com/

  2. http://www.hp.com/

  3. http://www.dell.com/

Currently no companies provide corporate support for GNU/kFreeBSD.

Is there an example box developers can login to to see if it works?

The following machines are available to developers:

  1. io.debian.net - maintained by Aurelien Jarno and Gürkan Sengün, connectivity by ETH Zürich, Department of Physics. [http://io.debian.net/ssh.html How to access it for Debian developers]

  2. friki.frikazos.com - maintained by Hector Garcia (access on request).

Further requirements for OSes

Are there existing comprehensive free distributions of this OS? If so, why is a Debian distribution useful?

No, this is the first GNU/kFreeBSD distribution. We do use the same kernel as that of FreeBSD, though. For the benefits of Debian GNU/kFreeBSD versus FreeBSD, see ["Debian GNU/kFreeBSD why"].

Please summarise in place. -- ajt@d.o 

OK,  copy and paste from  Debian GNU/kFreeBSD why:

Why would you prefer Debian GNU/kFreeBSD to FreeBSD?

What demonstrable benefits does this OS have over existing Debian OSes?

With Debian, you have several dimensions of freedom of choice

GNU/kFreeBSD will enhance dimensions of

See also ["Debian GNU/kFreeBSDGNU/kFreeBSD why"].

Please summarise in place. Note that benefits need to be demonstrated and 
verifiable, not just asserted. -- ajt@d.o 

OK,  copy and paste from  Debian GNU/kFreeBSD why:

Why would you prefer Debian GNU/kFreeBSD to Debian GNU/Linux?

http://www.freebsd.org/features.html lists a bunch of interesting features in FreeBSD (most of which apply to kernel, and hence are shared with GNU/kFreeBSD).

http://bulk.fefe.de/scalability/ has a list of benchmarks that compare kFreeBSD 5 with Linux 2.6.  The benchmarks claim that kFreeBSD performs better than Linux on network connections under high load (~4000 open sockets).

Does this system have a standard Unix API?

Yes (Glibc).

Does the OS support modern glibc and gcc?


In the case of glibc, we're still in the process of merging patches, but there is a modern glibc available, ie 2.3.5 or 2.3.6.

For gcc, gcc-3.3 through gcc-4.1 and gcc-snapshot (Debian packages) are available. All languages but Java are enabled, including Ada.

What is the license on the kernel and libraries? Is it free? Is it GPL compatible? (Note that if it's not free, building software for it violates the Social Contract; and if it's not GPL compatible, GPL software such as dpkg can't be linked to it)

Kernel and some libraries that come from FreeBSD are licensed under the BSD license (without advertising clausse), and Glibc is under the LGPL. Both are free and GPL-compatible.

Note: The vanilla upstream kernel contains a few non-free drivers which were removed. It also contains some GPL components. See the debian/copyright file for details (package kfreebsd-source-x.y).

Does the OS build largely without source changes? If so, what proportion of the archive has built?

We actually have two repositories, one called "unstable" for packages build without source changes, and another called "unreleased" where packages that need to be patched stay until the patch has been merged by the package maintainer.