One very interesting thing about this release is the introduction of Debian GNU/kFreeBSD. I've been running it in a VirtualBox, and while it has some bugs it's also a wonderful addition to Debian. They've just recently got the userspace ZFS tools working on a FreeBSD 8.1 kernel running a GNU userland and a GNU C library.
We're heading for a brave new world where the kernel is just another package, not some immutable part of the whole system.
We're heading for a brave new world where the kernel is just another package, not some immutable part of the whole system.
While I can agree with this on the grounds that diversity of choice is a Good Thing and will introduce innovation and cross pollination between the two camps (hence my comment about being happy that they are experimenting with it); I disagree with it because the solidity and strength of FreeBSD primarily comes from it being developed and offered as a cohesive whole (Kernel and userland). Lack of cohesion is one of my major gripes with the GNU/Linux "distribution" model; although, I will say that Debian seems to be making up for this with excellent progress!
> primarily comes from it being developed and offered as a cohesive whole (Kernel and userland)
To a large extent this is also the Debian model, which is a lot more integrated than many Linux distributions--- they don't just cobble together a bunch of packages and call it a day. Like FreeBSD, they do take a lot of things from upstream (e.g. both use X.Org as their X11 server), but also like FreeBSD, they heavily customize the core packages and develop them so they work together well. There are core Debian teams working on its versions of the Linux kernel (http://wiki.debian.org/DebianKernel), X.org (http://wiki.debian.org/XStrikeForce), Exim MTA (http://wiki.debian.org/PkgExim4), package manager (http://wiki.debian.org/Apt), etc., along with thousands of Debian-specific patches to other packages, which are maintained as far as possible in an integrated manner to meet the unified Debian system policies.
It's not entirely identical, but I don't think it's that far off. I think the FreeBSD core system may be developed somewhat more as a single entity (for example, because FreeBSD literally develops its own kernel, rather than customizing an upstream one), but Debian may actually have more cohesive development across the entire system. My impression, though I could be wrong, is that FreeBSD ports are more spotty when it comes to really being managed seamlessly with the base system.
A colleague was telling me yesterday that the official Apache Tomcat packages for CentOS/RHEL keep all their runtime temporary files in /usr/share/tomcat; that's the sort of thing that would never be allowed in a Debian package (runtime state belongs in /var).
Another example: The Debian packaging guidelines demand that every executable have a man page available, even if the upstream project doesn't supply one. They're not always as complete and comprehensive as one might hope, but they're often enough to give you the general gist of what a command is supposed to do, and how to use it.
Yet another example: Debian has an 'alternatives' system, by which you can configure the system and tell it that your preferred terminal emulator is 'xterm', your preferred text-editor is pico, etc. (this extends to man pages too - if you make "x-terminal-emulator" point at xterm, then "man x-terminal-emulator" will give you the xterm man page). Every package that Debian ships that is able to spawn a terminal emulator in some way is required to launch x-terminal-emulator rather than hard-coding xterm or rxvt or whatever.
The downside to all this is that if you know how to configure/administer package X on RedHat or FreeBSD, you might get lost trying to find where the package keeps its stuff in Debian. The upside is that if you know how to configure/administer package X on Debian, you should find it pretty easy to configure/administer packages Y and Z as well.
One more example: The last time I installed fetchmail on RedHat, I wound up having to create /root/.fetchmailrc and write my own cronjob to run it. The last time I installed fetchmail on Debian, it already came with an /etc/init.d script that would do all the periodic checking for me, all I had to do was create an "/etc/fetchmailrc" file (like any other system service) and start it up (like any other system service). Debian's integration goes far, far beyond any other distro I've seen.
yea, Debian is goodness. I think Ubuntu inherits most of that goodness, but the packaging seems to be a little more flakey. I've had more dist-upgrade failures in Ubuntu than with Debian. FWIW as of now, I use Debian on servers, and Ubuntu on desktops. I wouldn't use any distro other than Debian for a server.
I didn't know any of that, thanks for posting. My experience with FreeBSD's port tree has been wonderful; they are actually managed well with the base system. There are regular updates to the ports as well.
Sure, I mean that comment in the context of Debian. Debian GNU/kFreeBSD isn't going to be a replacement for FreeBSD any time soon for the people that prefer it.
But it's an excellent alternative for Debian users who'd like to use ZFS and other FreeBSD features without throwing the rest of Debian out with the bathwater.
This'll also be wonderful for the BSD's in terms of increasing the portability of packages in Debian that they might want to pick up.
Indeed. And an additional advantage to the FreeBSD may be that it can raise the profile/popularity of FreeBSD. The same would apply to an official port to the OpenSolaris kernel.
I seriously disagree with this. The Ports tree is much more coherent and easy to use than any of the Linux distribution's attempts. The key reason for this is the fact that FreeBSD is a cohesive whole rather than a "distribution".
I'm always pulling out hair when using yum, apt, or any other package manager - updating repositories, dealing with 3rd party repositories; just plain old bleh.
With the ports tree, I have a cron job that runs portsnap upgrade monthly (so I have the latest software). I never install binaries of a piece of software that requires a lot of configuration, like PHP, Apache, or et al. I will use pkg_add for things like vim, bash, zsh, etc...
> FreeBSD is a cohesive whole rather than a "distribution".
So far you're the second person in this thread to use that phrase. I saw it mentioned multiple times in another recent HN article's comments. I don't understand what it means. It seems to be said with an almost religious fervor, but I might just be misinterpreting it. What, specifically, does cohesive mean to you in practical real world terms? How do the BSD versions 'ls' or 'grep' or 'awk' benefit from being cohesively developed with the kernel?
I feel I'm missing something here and would love to be enlightened.
Some people use it with religious fervor, some do not; there is truth behind it though. Cohesive in this context refers to the user land and kernel software ecosystem of the project. GNU/Linux is called "GNU"/"Linux" because it is the user land software of the GNU project bundled with the kernel of the Linux project. The development of base user land utilities and software is done in completely separate fashion from that of the kernel - they are then mixed and matched into "distributions".
That model has a key advantage, namely, organic growth through asynchronous development - innovation in the kernel has it's own programmer resources and isn't limited by the development path of the user land; the same can be said of user land. Now, it's also a disadvantage in that, you have gazillions of distributions that are now mixing and matching user land software with completely different methods of managing that software (yum, apt, rpm, etc..).
FreeBSD, however, develops the kernel and its base user land all in unison. There are no distributions, there is just "FreeBSD" and as a result, there is just one method for managing user land software (ports). The key advantage here is uniformity and tight integration with the components of the kernel and the base user land system.
BSD vs. GNU ls or grep or awk is moot - they are practically the same tools. The difference is that they are developed and refined with the base system (which means Clang/LLVM will now be compiling those tools).
I liken the difference of FreeBSD vs. GNU/Linux to the days when vendor hardware was cohesively developed and the modern days where all of your components come from separate vendors. There are pros and cons to both. My preference is the *BSD way :)
Thanks for the response. It seems a bit of a cheat to me, though, to compare the differences in the various linux distributions to the (claimed) cohesiveness of FreeBSD. Why not turn it around and compare the differences between FreeBSD, OpenBSD and NetBSD to just Debian?
Having used Debian (a whole lot) and Fedora (just a little), I've found that, although they have some large differences between them, each of them presents a cohesive system within itself. Despite the package sources coming from disparate places. I know for a fact that both distributions patch their (external) packages so that they fit into their respective guidelines (IE, no junk in /opt, config files in directories in /etc, etc.).
I've used OpenBSD in the past--even got the source code from CVS and compiled the whole thing up. I've seen how all the code is organized and it is nice. I definitely see how it's cohesive from the source code's point of view. But I don't see how that produces a more cohesive system from the user's point of view.
Depends on the context with which you are arguing, I suppose. In this case it might have been more correct to argue FreeBSD vs. Debian. I still stress, though, that the difference is still a notable one; even though Debian may be a tight and clean distribution it's still considered "GNU/Linux" - FreeBSD is just FreeBSD. The BSD's do have some cross pollination but they aren't united under a single umbrella as all the distributions of GNU/Linux are. Debian is sort of stepping away from this by building a distribution that matches GNU user land with the FreeBSD kernel.
I haven't personally used Debian that much, so I can't reliably argue for or against it (but I've heard good things); my arguments generally stem from my lovely experiences with FreeBSD and my generally frustrating experiences with GNU/Linux (no new argument here, everything I said in this sentence is said in my above post).
One very interesting thing about this release is the introduction of Debian GNU/kFreeBSD. I've been running it in a VirtualBox, and while it has some bugs it's also a wonderful addition to Debian. They've just recently got the userspace ZFS tools working on a FreeBSD 8.1 kernel running a GNU userland and a GNU C library.
We're heading for a brave new world where the kernel is just another package, not some immutable part of the whole system.