FreeBSD vs. Slackware Linux
This details the thought processes I am going through in looking at what my next home server will be. It is a place for me to write my issues with my two favorite operating systems, in an attempt to decide what is best for my future.
Why Use Either?
1st off, lets get this out of the way; why not use Microsoft Windows, Apple Macintosh OSX, or
YOUR_FAVORITE_OS_HERE? - I don't need a graphical front-end for a server; I think it's a waste of resources. Also, both Slackware Linux and FreeBSD are free (as in gratis) operating systems, and can run on older hardware, which is important as my servers usually come from recycled pc's that are at least 5 years old.
What do I use my server for?
An email server, a web server, an Oracle XE server (I run a couple of applications that store data in Oracle) and a file server. Both Slackware and FreeBSD can do the above except for the Oracle XE install, which installs just fine on Slackware, but thus far, I haven't heard of it being installed successfully on the recent versions of FreeBSD.
What do I care about in an OS/distribution?
For a server, I couldn't care less about what windows/desktop manager is used; KDE or Gnome, XFCE or whatever on a server is just add-on stuff in my opinion, and has nothing to do with this analysis. The core stuff I'm interested in are things like the way daemons are launched, and configured, the file-system layout, and the package management system (method by which software is installed). I don't have any issues with Slackware's package management system; many other people, who don't understand Slackware take issues with it not resolving dependencies, but as a hands-on user, I am quite comfortable installing these myself if necessary. The security update notifications spell-out in complete detail what you need to do to upgrade packages, and have yet to let me down. FreeBSD is very good in this area too by the way, however many of their software updates require a kernel recompile, so keep that kernel code on the same machine. I prefer FreeBSD's method of getting packages in the first lace with their central repository on FreeBSD.org that you can access and install with a couple of simple commands, and I wish that Slackware had this (slackware.com and linuxpackages.net are good repositries for packages, but there is no default method of downloading and installing that is part of the core distribution - there are third party options (like swaret) for this however, but then you're at the whim of that third-party group, that could stop maintaining etc.).
What I do like about Slackware, is that it is Linux, and Linux is released under the GPL. Although I don't have a moral issue with the BSD license, I don't think it protects the future of FreeBSD in the way that the GPL protects the future of Linux. Many large companies (IBM and Oracle, to name two) have submitted modifications to the Linux kernel, several of these have been accepted; this, I believe, primarily due to the GPL, which obligates anyone who takes the kernel code and modifies a copy of it to release those changes to the world. Under the FreeBSD license, there is no such obligation, and as is evident in the companies that use FreeBSD (and other BSD) code - think Apple, Yahoo and several others - not much comes back, and the FreeBSD developers have had to re-invent some concepts. Take a look at the complaints in the OpenBSD groups to get an idea of what I mean. This goes towards the future of FreeBSD; how relevant will it be in the future, and can it keep up with the many, many hardware changes without the help of other companies? I think the FreeBSD developers are a very dedicated bunch of people, but I wonder if they will be able to devote the time to make so many changes, which in Linuxs' case will have had some changes released back to its developers due to the terms of the GPL. The Linux structure may seem chaotic, but it works, and I think it has a solid future.
Now what does this have to do with Slackware? - Well, slackware is a Linux distribution; I believe that Linux as a kernel has a stronger future than FreeBSD, but how does the Slackware Linux distribution's future compare to FreeBSD? - Poorly I think because there are no clear lines of succession (that I am aware at any rate); you see Slackware is basically a one-man-show; Patrick Volkerding runs the distribution, and does most of the final release work himself (does a very good job of it I may add), but if you take him out of the picture, the distribution grinds to a halt. Some would argue that Linux itself is run like this, it is, however, there are several people in like that Linus Torvalds defers some of his decisions to, and they are part of an inner circle, that could easily take over if he decided to remove himself from it. A point in FreeBSD's favor is that FreeBSD doesn't have this problem, because the core commit group is basically a committee with voting rights to add or replace members - this is a more solid method for their future in my opinion. Slackware used to have several people closer to the top when it was a more popular commercial distribution, but the others seem to have drifted away, leaving Patrick alone.
Why not choose another distibution then?
This simple solution would be to choose another Linux distribution; there are many; some of which (like Debian) are run by a group rather than an individual. The problem is that I love Slackware; I have spent many years with it, and I greatly admire its simplicity and robustness. Whenever I use another distribution, it feels to me like wearing someone else's shoes; they may fit, but they don't fit quite right. I could take the Slackware Linux core code and make my own distribution, but I am a Java and Perl programmer, not a C programmer, and I simply don't have the time.
Licensing issues aside, Which OS is more fun to use? - While I enjoyed learning the idiosyncrasies of Slackware, I am constantly amazed at the organised professionalism of FreeBSD. I have really enjoyed the learning experience. As my experience with FreeBSD increases, I have begin seriously considering it to be the server OS of choice. I still see Slackware as a kind of homegrown club, where I'm very comfortable with the way things are done, but they're kind of quirky in the way they do things. FreeBSD on the other hand has many things planned and documented down to the last degree. Methods have been put in place to make things easy to configure, and a pleasure to work with.
The easiest solution, I suppose is to just stick with Slackware as long as it's there, and move to another distribution if Slackware folds. I wish that Slackware had an inner circle like FreeBSD does, and a well-maintained handbook like FreeBSD, then I think it would be the ideal distribution. But for now seeing as Slackware is my favorite distribution, I guess I'll just have to stick with it, and wait'n'see.
BSD vs GPL (BSD Viewpoint) : http://www.freebsd.org/doc/en_US.ISO8859-1/articles/bsdl-gpl/article.html
More on the GPL (FSF Viewpoint) : http://www.fsf.org/licensing/licenses/gpl-faq.html
Why the original BSD license is incompatible with the GPL : http://www.fsf.org/licensing/licenses/gpl-faq.html#OrigBSD
Another analysis : http://polishlinux.org/choose/comparison?distro1=Slackware&distro2=FreeBSD