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:
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.
Is this architecture related to other architectures already in the archive, or that also should be considered, either now or in the future? Can the related architectures be supported in a single architecture (eg, with a biarch arrangement)?
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? -- firstname.lastname@example.org
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:
- Robert Millan
GuillemJover (Debian Developer)
- Aurelien Jarno (Debian Developer)
- 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:
- friki.frikazos.com, with 12 users.
The following lists of users are available:
http://buildd.net/cgi/archvote.phtml, lists 28 users.
- ["Debian GNU/kFreeBSD userlist"], lists 12 users (This list is deprecated in favour of the previous one, and currently has no duplicates.).
[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? -- email@example.com
Frequent failure reasons
- outdated config.sub/config.guess files
- outdated libtool scripts
- (recursively) Build-Depends unconditionally on Linux specific packages (libselinux, alsa-lib, ...)
- written in a language with not yet ported compiler (java, c#)
uses Linux specific files instead of portable ones (like #include <linux/types.h> instead of <sys/types>)
- code tests for an OS not for a requested feature
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:
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:
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]
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. -- firstname.lastname@example.org
OK, copy and paste from Debian GNU/kFreeBSD why:
Why would you prefer Debian GNU/kFreeBSD to FreeBSD?
- If you like the Debian package system (or its package set) more than FreeBSD ports (just a matter of preference).
- If you like GNU userland more than BSDish one (again, just a matter of preference).
- If you don't have anything against GPL or other copylefted free software licenses, you'll appreciate that useful kernel modules like ext2fs driver, the upcoming reiserfs and xfs, or the upcoming ethernet driver for Xbox are (or will be) compiled in on the default kernel.
- If you're concerned about running a 100% free system, our commitment to the Debian Free Software Guidelines (DFSG) guarantees that Debian GNU/kFreeBSD doesn't contain any non-free software. In fact, we have removed some non-free binary-only drivers that are contained in the upstream FreeBSD tree, like the ath driver.
What demonstrable benefits does this OS have over existing Debian OSes?
With Debian, you have several dimensions of freedom of choice
- hardware (i386, powerpc, ia64, ...)
- GUI (KDE, Gnome, *Step, ...)
- shell (bash, tcsh, ash, ...)
GNU/kFreeBSD will enhance dimensions of
- operating system (Linux, FreeBSD, Hurd, ....)
See also ["Debian GNU/kFreeBSDGNU/kFreeBSD why"].
Please summarise in place. Note that benefits need to be demonstrated and verifiable, not just asserted. -- email@example.com
OK, copy and paste from Debian GNU/kFreeBSD why:
Why would you prefer Debian GNU/kFreeBSD to Debian GNU/Linux?
- Cleaner or more standard kernel interfaces:
- Single /dev implementation via devfs, instead of the 3 discordant ways of handling /dev that Linux provides.
- OSS as the default sound system (i.e. the standard interface supported by almost every Unix-like system around).
- OpenBSD Packet Filter (pf).
Other nice security features, like [http://www.freebsd.org/cgi/man.cgi?query=jail jails].
kFreeBSD developers often have more interest in merging new features rather than spawning forks all along (the port to Xbox is a very good example. See the responses from [http://www.uwsg.iu.edu/hypermail/linux/kernel/0307.1/2019.html Linus Torvalds] and [http://lists.freebsd.org/pipermail/freebsd-arch/2005-October/004519.html kFreeBSD developers]).
- Some people say that kFreeBSD has better performance and/or stability (especially in disk/filesystem areas).
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?
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.
- unstable: 71,4%
- unrelased: 5.4%
- total: 76.8%