Differences between revisions 1 and 36 (spanning 35 versions)
Revision 1 as of 2005-12-31 16:54:51
Size: 4497
Comment:
Revision 36 as of 2007-09-05 20:52:51
Size: 14056
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from kfreebsd-i386ArchiveCriteria
Line 9: Line 10:
No No.
Line 21: Line 22:
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 maintainers merge the patches. Sources of those packages are also 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 the Debian maintainers merge the patch.es Sources of those packages are also available.
Line 26: Line 27:
There's support for emulating Linux-i386 binaries. However, it's not possible to use these
as a base for our port.

{{{
Why not? Why is it not possible to add a small kfreebsd-tools_i386.deb and then use a Linux userspace with a few extra freebsd tools and a freebsd kernel? -- ajt@d.o (2007/06/19)
}}}

{{{
Currently there is no support in STABLE kernel series for Linux 2.6.x, (even for x=0). Linux emulation even in CURRENT will be still behind official Linux kernel, so as a result, there still would be unimplemented syscalls - http://wiki.freebsd.org/linux-kernel. The result of this would be silent breakage of programs.

It is impossible to mix FreeBSD syscall convention with Linux syscall convention in one binary (including used shared libraries). In this context, it is hard to imagine how to prepare kfreebsd-tools_i386.deb.

Also please note there already exists kfreebsd-amd64, but no emulation of Linux-amd64 binaries at all.

-- Petr Salinger
}}}

{{{
Using Linux emulation is currently not possible without using a chroot, because of path and filename collisions (mostly libraries). This will be solved by multiarch if/when available.

Also it only works for binaries that are not accessing directly or indirectly the hardware. For example running a GNU/Linux X.Org is difficult because it needs to access the graphic card, and even if it works, your GNU/Linux Gnome or KDE won't be able to communicate with the FreeBSD kernel via HAL to be informed of new devices (an USB disk for example).

-- Aurelien Jarno
}}}

{{{
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
}}}

{{{
Current NetBSD does not provide full emulation of used syscalls. Some important syscalls (like sigaction, statfs, swapcontext) are missing at all, required support in sysarch() for thread local storage is also missing. Compare http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/syscalls.master and http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/compat/freebsd/syscalls.master

It might get better in future and the following will apply.
}}}

{{{
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
}}}
Line 35: Line 80:
 5. Gürkan Sengün
 6. CyrilBrulebois (NM)
Line 39: Line 86:
Desktop/workstation General purpose (like linux-i386).
Line 43: Line 91:

== Is there kernel and toolchain support? At what level? Are the latest versions supported, or are legacy releases required for compatability with some hardware?
Has 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? ==
As of 2007/07/27:

The port is being actively used at the following sites:
 1. [http://io.debian.net/ io.debian.net], with 78 users (check [http://io.debian.net/~rmh/usercount.cgi dynamic user counter]).
 2. [http://asdfasdf.debian.net/ asdfasdf.debian.net], with 16 users (check [http://asdfasdf.debian.net/~tar/usercount.cgi dynamic user counter]).
 3. friki.frikazos.com, with 12 users. (TODO: seems to be down)

The following lists of users are available:

 1. http://buildd.net/cgi/archvote.phtml, lists 49 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 12 users.
 4. [http://www.bsdstats.org/ BSD Stats], lists 2 systems.

== 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.
Line 50: Line 120:
 [http://glibc-bsd.alioth.debian.org/doc/ Install guide]  * [http://glibc-bsd.alioth.debian.org/doc/ Install guide]
 * [http://www.hermann-uwe.de/blog/testing-stuff-with-qemu-part-3-debian-gnu-kfreebsd A short guide for installing Debian GNU/kFreeBSD in QEMU] (unofficial)
Line 55: Line 126:
Two buildds (for redundancy) are running for 6 months. Currently 76,8% of the sources packages have been built. [http://unstable.buildd.net/buildd/kfreebsd-i386_stats.html Up to date value]
Two buildds (for redundancy) are running since summer 2005.

As of 2006/05/29 over 80% of the sid source packages have been built.
For number of up-to-date packages see [http://unstable.buildd.net/buildd/kfreebsd-i386_stats.html].

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

{{{ 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
}}}
Line 62: Line 148:
If you have a lot of money, yes you can have faster hardware buy 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. 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.
Line 83: Line 169:
Line 86: Line 171:
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?'''
 * 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.
}}}
Line 89: Line 188:
With Debian, you have several dimensions of freedom of choice
 * hardware (i386, powerpc, ia64, ...)
 * GUI (KDE, Gnome, GNUstep, ...)
 * shell (bash, tcsh, ash, zsh, ...)

GNU/kFreeBSD will enhance dimensions of
 * operating system kernel (Linux, FreeBSD, Hurd, ....)

See also ["Debian GNU/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?'''
 * 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).
 * The FreeBSD kernel might support some hardware which Linux does not support and/or the FreeBSD kernel support might be better (less bugs).
}}}

{{{
http://www.freebsd.org/features.html lists a bunch of interesting features in FreeBSD (most of which apply to the 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).
}}}
Line 92: Line 223:
Yes (Glibc).
Line 95: Line 227:
Yes.

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

For gcc, gcc-3.3 through gcc-4.2 and gcc-snapshot (Debian packages) are available. All languages are enabled, including Ada and Java.
Line 98: Line 236:
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).
Line 100: Line 241:

We actually have two repositories, one called ''unstable'' for packages built 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.

As of 2006/12/12:
 
 * unstable: 80.8% (5495 sid packages)
 * unreleased: 1.6% (112 sid packages)
 * total: 82.4% (5607 sid packages)

As 100% is taken 6800 packages (there are 6708 arch any packages, 7035 packages are not arch all).

----
CategoryDeveloper

Purpose

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?

No.

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 the Debian maintainers merge the patch.es 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.

Why not? Why is it not possible to add a small kfreebsd-tools_i386.deb and then use a Linux userspace with a few extra freebsd tools and a freebsd kernel? -- ajt@d.o (2007/06/19)

Currently there is no support in STABLE kernel series for Linux 2.6.x, (even for x=0). Linux emulation even in CURRENT will be still behind official Linux kernel, so as a result, there still would be unimplemented syscalls - http://wiki.freebsd.org/linux-kernel. The result of this would be silent breakage of programs. 

It is impossible to mix FreeBSD syscall convention with Linux syscall convention in one binary (including used shared libraries). In this context, it is hard to imagine how to prepare kfreebsd-tools_i386.deb. 

Also please note there already exists kfreebsd-amd64, but no emulation of Linux-amd64 binaries at all. 

-- Petr Salinger

Using Linux emulation is currently not possible without using a chroot, because of path and filename collisions (mostly libraries). This will be solved by multiarch if/when available.

Also it only works for binaries that are not accessing directly or indirectly the hardware. For example running a GNU/Linux X.Org is difficult because it needs to access the graphic card, and even if it works, your GNU/Linux Gnome or KDE won't be able to communicate with the FreeBSD kernel via HAL to be informed of new devices (an USB disk for example).

-- Aurelien Jarno

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

Current NetBSD does not provide full emulation of used syscalls. Some important syscalls (like sigaction, statfs, swapcontext) are missing at all, required support in sysarch() for thread local storage is also missing. Compare http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/syscalls.master and http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/compat/freebsd/syscalls.master

It might get better in future and the following will apply.

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
  5. Gürkan Sengün
  6. CyrilBrulebois (NM)

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 2007/07/27:

The port is being actively used at the following sites:

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

  2. [http://asdfasdf.debian.net/ asdfasdf.debian.net], with 16 users (check [http://asdfasdf.debian.net/~tar/usercount.cgi dynamic user counter]).

  3. friki.frikazos.com, with 12 users. (TODO: seems to be down)

The following lists of users are available:

  1. http://buildd.net/cgi/archvote.phtml, lists 49 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 12 users.

  4. [http://www.bsdstats.org/ BSD Stats], lists 2 systems.

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)

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 since summer 2005.

As of 2006/05/29 over 80% of the sid source packages have been built. For number of up-to-date packages see [http://unstable.buildd.net/buildd/kfreebsd-i386_stats.html].

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

{{{ 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:

  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?'''
 * 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, GNUstep, ...)
  • shell (bash, tcsh, ash, zsh, ...)

GNU/kFreeBSD will enhance dimensions of

  • operating system kernel (Linux, FreeBSD, Hurd, ....)

See also ["Debian GNU/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?'''
 * 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).
 * The FreeBSD kernel might support some hardware which Linux does not support and/or the FreeBSD kernel support might be better (less bugs).

http://www.freebsd.org/features.html lists a bunch of interesting features in FreeBSD (most of which apply to the 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?

Yes.

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

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

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 built 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.

As of 2006/12/12:

  • unstable: 80.8% (5495 sid packages)
  • unreleased: 1.6% (112 sid packages)
  • total: 82.4% (5607 sid packages)

As 100% is taken 6800 packages (there are 6708 arch any packages, 7035 packages are not arch all).


CategoryDeveloper