Debian Elevates KFreeBSD Port to First-Class Status
Reader tail.man points out this press release from Debian which says that the port of the Debian system to the FreeBSD kernel will be given equal footing alongside Debian's several other release ports, starting with the release of Squeeze. Excerpting from this release:
"The kFreeBSD architectures for the AMD64/Intel EM64T and i386 processor architectures are now release architectures. Severe bugs on these architectures will be considered release critical the same way as bugs on other architectures like armel or i386 are. If a particular package does not build or work properly on such an architecture this problem is considered release-critical. Debian's main motivation for the inclusion of the FreeBSD kernel into the official release process is the opportunity to offer to its users a broader choice of kernels and also include a kernel that provides features such as jails, the OpenBSD Packet Filter and support for NDIS drivers in the mainline kernel with full support."
In my opinion, the biggest advantage of FreeBSD is how coherent the system is. Everything, from documentation to userspace utilities to the kernel, was developed and tested and released as a single project.
This allows for neat features that require cooperation between several system components, which would be more difficult to implement in the Linux world. For instance, in FreeBSD you can press ^T while cp is copying some huge file, and this will send SIGINFO to cp, causing it to print a progress report to STDERR. Handy.
So it seems to me that this Debian project defeats the most attractive feature of the FreeBSD operating system (by separating its kernel from its tightly integrated BSD userspace), while simultaneously casting aside Linux's advantages over FreeBSD (more drivers, more supported architectures, somewhat better performance, and--this may be controversial--in my experience, better stability). On the other hand, maybe Debian really can improve on the FreeBSD experience; apt rocks, and the Debian project does perhaps a better job than anyone of combining the disparate parts of the GNU/Linux ecosystem into a coherent operating system. So kneejerk reactions aside, I guess I shouldn't judge this until I have the chance to try it... still, I don't see myself trading in my Debian GNU/Linux anytime soon.
The grandparent was trying to make a point, but failed. Similar behavior exists throughout the FreeBSD userland--you can send SIGINFO with ctrl-t to many userland processes to get information on what they're doing. The point is that FreeBSD's kernel and userland were designed as a system, and little touches like this show that off.
For instance, in FreeBSD you can press ^T while cp is copying some huge file, and this will send SIGINFO to cp, causing it to print a progress report to STDERR. Handy.
Isn't this an internal feature of their cp implementation?
No. The fact that ^T sends SIGINFO, just as ^C sends SIGINT, is a feature of the "tty driver" (standard tty line discipline). The fact that a particular program catches SIGINFO and prints a progress report is a feature of the program.
I don't see what this has to do with the kernel...
The standard tty line discipline referred to above is in the kernel.
I would say mod parent up, but you're already at +5. This was what made me switch from Linux around 2002: Sound Works. I had a cheapy AC97 CODEC in my computer at the time. It didn't do hardware mixing. I installed Linux. There were two drivers, an OSS one and an ALSA one. Neither one let the majority of my programs play sound at the same time. For example, I couldn't have xmms playing music while I played BZFlag. Both KDE and GNOME came with their own sound daemon, which meant that either KDE programs could make sounds or GNOME programs could make sounds. Oh, and I think if I used the ALSA drivers then two programs that had had their sound output rewritten to use ALSA could play sounds at once... sometimes. Then I tried FreeBSD.
In FreeBSD, there was one driver for the sound device. This was back in the 4.x days, so sound devices needed a little bit of extra configuration. I had to set the number of virtual channels and then tell each device to talk to a different one. I set up 4, one for GNOME, one for KDE, one for xmms and left the default one for whatever apps just wrote to /dev/dsp. I could have music playing, BZFlag sound effects in the game, and notification beeps when I got an email or IM. Then came FreeBSD 5 and all of that manual configuration went away. To play sound, a program opens /dev/dsp and writes audio data to it. That's it. No libraries to link against; it's all done via standard UNIX system calls (open(), read(), write(), and ioctl()). It's trivial to program for and it just works. With FreeBSD 8, you now get per-channel volume controls and a rewritten high-performance mixing algorithm, as well as support for all of the new OSS 4 APIs (backwards - binary - compatible with the old OSS 3 ones) if care about those things (i.e. if you are a programmer).
A few other things that I like about FreeBSD:
There are probably some things I've forgotten. I was going to say that the only thing I miss on FreeBSD was valgrind, but it turns out that Valgrind 3.5 has been in ports for a little while now and I just wasn't paying attention (so, obviously, I don't miss it that much).
I am TheRaven on Soylent News