|
|
What UNIX or Linux Distribution is The Best?Do you search for an answer to this question? Or maybe you are tired of people asking this question all the time on the various discussion forums (usenet, web, mailing lists)? First I have to say that there is no easy, simple and true answer to the question. The answer depends on what you like and what you want to do. I you're a newbie, the correct answer is: Use whatever distribution your helpful UNIX/Linux friend uses/knows best. So that when you have questions he or she might be more able to help you. I you don't have any helpful friends, get some. Join a Linux or Unix User Group and make some friends. Don't be hasty and show some humility. Try different distributions/Unices until you find something you like. Historically I have tried explaining differences and such, I still include this here, but beware that the information is old. In addition to the old stuff, I will just point you to check out:
I might blog something on my recent playing around with OpenSolaris, ZFS, XEN/xVM and more, but no promises. The rest of this page is the old page from 2001, not updated (some historical info is probably still relevant/correct, but not all of it): This page started out as a page where I tested all the different distributions I came across and wrote comments and reviews. Now I focus more on describing the main differences between the distributions. I do not test each new version of every Linux or UNIX distribution. Here you'll find reviews of and comments Red Hat, Slackware, TurboLinux Server, Debian GNU/Linux, Mandrake, SuSE, Storm Linux, Caldera, Trustix, Corel Linux, Solaris, FreeBSD, NetBSD and OpenBSD. Please do not accept my opinions and comments to be the truth. :-) CNET have a review page you might find interesting. There you'll find their opinions on many different distributions and applications. My preferred Linux distribution is Debian GNU/Linux, and I'm currently running Debian Potato (version 2.2, the "stable" version) on my main server and Debian Woody (the "testing" version, soon to be the new "stable") on most other installations. I used to have Debian Sid ("unstested/unstable" on my laptop, but I found myself using a little too much time fixing small bugs when it sure wasn't convenient. I started my Linux experience in 1995 with an distribution called Linux FT. Then I tested SLS Linux. After that I used Slackware until I switched to Red Hat Linux (version 3.0.0), and I had Red Hat as my favourite distribution for years. After Red Hat 5.2 I got tired of the growing complexity of Red Hat (I felt it was getting more bloated), and I switched back to Slackware a while, before I discovered Debian 2.0. And when Debian 2.1 ("slink") arrived, I totally converted to the world of Debian/GNU Linux. :-) I will also have to mention that my favourite BSD distribution is OpenBSD. OpenBSD is very nice in many ways. It's very secure and it's nice and "clean". I have used OpenBSD for a couple of firewalls and web servers.
What is Linux? Where Do I Start?If you want to know more about Linux, you can start at Linux Online and find your way. Norwegian visitors can check out the Linux Noreg homepage, and I recommend the FAQ Linux for noen hver by Egil Kvaleberg.
Main Differences Between Linux Distributions
There are many small differences between the different distribution,
but here I'll try to line up the main differences. The first
main differences I will take a look at is the init-process and
the package manager. Another important issue is GNOME
vs. KDE.
There is a major difference between the System 5/SYS V UNIX family and the BSD (Berkeley) UNIX family. Old SunOS 4.x is BSD style. FreeBSD, NetBSD and OpenBSD are obviously BSD style. Newer SunOS 5.x (Solaris) is SYS V style. Linux distributions are most often a mix of both. The differences lays in the commands and what options they take, and it lays in the init script structure. An example of the difference in command syntax is the ps command. In BSD style you would write ps auxw or something like that. Almost similar SYS V style for the same command would be ps -ef. In BSD style init you have some "flat" init scripts called /etc/rc.something. rc.local are some often left for you to edit as you please. If you want new daemons to start and stop on certain runlevels, you enter some code in one of these scripts. SYS V style init is pretty different, it's more hierarchical. Here you have one script for each service/daemon you want to start and stop. This script has to take the options "start" and "stop". And then you have directories called /etc/rc?.d, where ? means each runlevel. For example will /etc/rc2.d contain the scripts that should be started on this runlevel. The scripts is then named S??script and K??script. The ?? here is a 2 digit number that tells the order script should be started or stopped. Most often the scripts in each runlevel is symlinks to the main script located in /etc/init.d.
So, what's best, you may ask. The answer depends on what you're most
used to, and what you're going to do. If I'm going to setup a
server that will run multiple services and need to be continously
upgraded, I would go for a SYS V init based system with a good package
manager.
There are three main package manager subsystem:
Most of the Linux distributions is based on RPM. RPM keeps track on dependecies and makes it easy to install, remove and upgrade packages. RPM is pretty powerful and is available on many commercial Unices (=UNIX'es) as well. dpkg is the other main package system. It's not as widely spread as RPM, but it's even more powerful. Combined with Debian's apt system you have a powerful package management system that even recursively resolves dependencies for you. Two commands, and you have completely upgraded you Linux distribution, as long as you have an updated/correct sources.list for apt. Slackware's package system is less advanced than RPM and dpkg. A package is a .tar.gz file with some control information (location and so on). I read somewhere that Slackware's package manager system is being upgraded, but I have not verified it. This package manager system seems to me to be pretty similar to BSD's pkg_add, pkg_rm and pkg_info (which we also have in Solaris), but I have not investigated this too much. Please enlighten/correct me if I'm wrong. In my opinion, nothing beats the dpkg and apt combination. But dpkg is a little more complex that Slackware's system. So if you want a system where you control mostly everything to you fingertips, you don't want to waste space on a package management subsystem or you compile mostly everything yourself, you don't need dpkg or RPM.
As of now, I can't find any argument for anybody should prefer RPM
instead of dpkg/apt. "apt is a blessing" someone said
... :-)
GNOME and KDE are now available in most Linux distributions. What is GNOME? What is KDE? They're both a framework around the Window Manager, a session manager and they both provide standards for developing applications. So one one hand KDE and GNOME provides a taskbar, menus buttons, a pager, cut&paste, drag&drop, icons, launchers and a whole lot of applications (everything from file and web browsers to games and office applications). On the other han GNOME/gtk and KDE/qt provides a standarized interface/framework (widgets, API's) for making applications. GNOME and KDE is nice in many ways. Both GNOME and KDE are fancy and may make the newcomers convert to Linux easier. If I had to choose between GNOME and KDE, I would choose GNOME, but I actually prefer using neither of them. I prefer just a simple FVWM desktop with a pager and reasonable mouse click menus and keybindings. ("Keep it simple" ...) In my opinion GNOME has a nicer touch&feel than KDE, and it seems to me like GNOME is developing faster than KDE. But all in all, it's just a question of what system feels best for you. If you want to check out GNOME, Ximian GNOME, the former Helix Gnome, might be something for you. Although I do not use neither GNOME nor KDE, I use some of the KDE/Qt and GNOME/gtk applications, so I install the libraries needed and the applications I like. So I actually use parts of GNOME and KDE even though I don't use the entire desktop environment from neither of them.
You may want to read this
BBC News article about GNOME vs. KDE.
Red Hat LinuxRed Hat is the most widely supported Linux Distribution. (Some vendors of software or hardware does only provide support for Red Hat.) It's one of the easiest distribution to install, and many tasks are made pretty easy for newbies. The installation is fully graphical (or text-based if you prefer that, as I do). Configuring soundcards, X windows, network and stuff like that is pretty easy through linuxconf, and you don't have to know what's happening beneath the hood. A default Red Hat installation is pretty big, and leaves you a pretty big job of tuning, removing software and services if you want a thight and secure system. That's why some people consider Red Hat to be "bloated&". But Red Hat works, and Red Hat is solid. A good tip is you run it on servers, is to never jump to new major versions until it's past the .0-versjon. For example: 6.0 and 7.0 was pretty unstable/unfinished when they arrived. Actually the first 6.1 was not too good either, but 6.2 is nice, and Red Hat 7.1 is hopefully stable enough for businesses to consider upgrading their servers. (Still, we have not upgraded from Red Hat 6.2 on any server I know of yet.) The main rule: Don't rush it! Don't upgrade your servers too fast, just apply the security patches. Compared to Debian GNU/Linux, Red Hat is more complex (in my opinion), and it's more work to get a good overview over what's happening. Red Hat is obviously base on the Red Hat Package Manager (RPM). In my opinion this is a good system, but not as powerful and time saving as Debian's package management system. The init process is both SYS V style and contains rc.local (BSD style). The runlevel script is placed in the subdirectory /etc/rc.d/ instead of directly in /etc. I never understood why, I think it's just more hazzle. But as from Red Hat 7.0 they have made symlinks, so that you may access /etc/init.d/ directly. I think this is a result of the filesystem standarization effort made across the different distributions. Summary: Red Hat is solid and easy to install and administer for newbies, and all in all it's a good distribution. Compared to Debian it's more bloated and a little more time consuming to administer from day to day. Debian GNU/LinuxDebian GNU/Linux and Debian is less fancy and "automated" than SuSE, Mandrake or Red Hat. Installation demands more knowlegde of Linux/UNIX and requires more personal adjustment than Red Hat or SuSE, but Debian is also less complex in structure and easier to configure/customize in many ways. But Debian is still more complex that Slackware. There is a certain learning curve to Debian. It's not the easiest to start with, but after working with Debian for a while you recognize that logic and smart solutions are the main trademark of Debian. Administering a Debian GNU/Linux is very nice and less time consuming than all other UNIX-flavours, Linux distributions and operating systems have ever worked with. Debian is based on sysvinit, System V style init scripts, and the package manager system, dpkg, is very powerful. With the power of dpkg and apt, upgrading, removing and installing software is very easy. You can upgrade your entire distribution with just two commands. Another nice fact, is that Debian has loads of software available and easy installable. The "stable" branch of Debian is not too often updated, and new version is not released very often. The result is that that the Debian stable releases is rock solid. If you want more "bleeding edge" versions of everything, the "testing" version/branch is nice. (Do not use this on servers, only on workstations.) If you're experienced with fixing bugs and hacking you system, you may also want to run the "unstable" version. Debian give you the feeling of being in control of your system, and you don't waste to much time on trivial "everyday" tasks. And it's rock solid. It's my favourite distribution.
SlackwareSlackware is pretty different from Debian and Red Hat. Slackware is a more BSD-like Linux distribution with BSD style init scripts (a more flat hiearchy of config files). The package management system is not as sophisticated as RPM or dpkg. The installation is the good old console based slack-installer. If you have installed some linuxes, it's comfortable to use. But it's probably a little confusing for newbies. I actually think this is my favourite Linux installer. Slackware is not the easiest Linux to install if you're new to Linux. On the other hand Slackware is probably on of the best choices if you really want to learn how UNIX/Linux works. If you compile most of the software you use, the choice between Debian, Slackware and a *BSD version will depend on whether you want BSD style init scripts and/or commands or not. And if whether you need a good package management system. If you want the best package management system, Debian is the clear choice. If you're a nerd :-) and wants to learn everything and manually control your system and compile lots of software, Slackware is probably the ultimate choice for you, or maybe you should check out RockLinux. SuSE LinuxSuSE is an RPM-based distribution. Some think SuSE is even easier to install than Red Hat. That's not my experience, I did not like their YaST (Yet another Setup Tool), but I know people who simply love it. SuSE is pretty much "on the bleeding edge", they include support for new devices in their compiled kernels very early. They're known for adding especially nice ISDN card and screen card support. I have not used SuSE too much, but my feeling is that's it's very easy to install, administer and use if you like their way of doing thing. I don't like it. They do thing their own way, and it works. My impression is that this is mainly a "desktop distribution", but lots of businesses use it on servers as well. And if you would like to have German language, check it out! Some just love SuSE, others hate it ... MandrakeMandrake is by many considered to be the easiest to install, and it's very focused on desktop use. I haven't tested Mandrake lately. When I tested it, it was a Red Hat distribution with some more polish and KDE as default desktop environment instead of GNOME. They now have more of their own stuff, so not just a Red Hat clone. Even so, my comments on Red Hat fits this distribution as well, I think. Mandrake is based on the RPM system and has SYS V style init just like Red Hat. But they have their own installer and their own system for configuring network, sound, X and stuff like that. Many people consider this to be easier to use than Red Hat. So if you need a system that's easy to install and use, Mandrake is probably a good choice. Check it out! But if you're mainly looking for a server OS, I wouldn't mind. Storm LinuxStorm Linux is a Debian based Linux distribution. It's has the power of dpkg and apt and has the same SYS V init as Debian. On top of this they have a nice installer and their own easy-to-use administration tool. I never use such administration tools, I just edit the files manually, therefore I haven't looked at Storm Linux since the first version, but Storm Linux sure looked nice. To make it short I might say that Storm is a Debian system, just easier to get started with. Stormix Technologies also has a "Storm Firewall for Linux" which is a Storm Linux optimized for firewalling and with some wizard software. I haven't tested this, since I do not see the need for graphical wizards to make a firewall. You may also buy a Strike Server with Storm Linux preinstalled. All in all, Storm seems like a good choice if you want a Linux that's easy to get started with and that has the power of Debian under the hood. Turbo Linux ServerI haven't tested TurboLinux since version 4, so I really shouldn't write to much about it now. When I tested it, it seemed to be another Red Hat clone with some improvements and own configuration and administration tools. But I actually did not discover any major reasons for using this instead of Red Hat. They now provide TurboLinux Cluster Server and other stuff I haven't tested. Try it out yourself or find other reviews somewhere else ... :-) CalderaI haven't tried Caldera since Caldera OpenLinux version 1.2 or 1.3, and frankly I don't remember much of it. If I remember correctly it was an RPM based distribution. They had their own desktop environment and their own tools, and they focused pretty much on easy interaction with Novell networks. Frankly I did not like their desktop environment back then, but that's probably totally irrelevant today. They seem to focus on servers and "eBiz" with product names such as "OpenLinux eServer&qout;. That's about all I know about Caldera. TrustixTrustix Secure Linux is a server oriented, Red Hat based distribution highly focused on improved security. When I wanted to test is (version 1.0) I didn't get it to install. The problem was then that the bundled kernel did not support ISA devices, and my computer's main harddisk back then was attached to a SCSI-controller on the ISA bus. So frankly I don't know too much about Trustix. But if you're setting up a server and like the Red Hat way to install packages and administer your system, Trustix is probably a very good choice. Corel LinuxCorel Linux is no longer being maintained, I think. I was based on Debian and was highly focused on the desktop users. It was very easy to install and at first login you entered a KDE desktop looking very much like Windows. They also had their own file manager that looked very similar to the Explorer in MS Windows.
But it seemed to me like the dpkg and apt system
was broken or incompatible with the normal debian sources. All in all
it was easy to install and use for newbies, but everything after that
was pain ... Do not use Corel Linux on a server, is my advice
to you.
Both FreeBSD and OpenBSD have the same roots, but they develop their distributions with different goals. FreeBSD's goal is to be the fastest and easiest to use BSD, mainly on Intel based PCs. OpenBSD's goal is to be the most secure system on many platforms. We also have NetBSD. Their goal is to run on as many platforms as possible. (This short presentation is probably pretty simplified by me.) I will not write anything more about NetBSD here now. (I haven't used NetBSD for three years.) To read more about *BSD, I recommend this article from SunWorld: The return of BSD by Greg Lehey. FreeBSDFreeBSD is pretty easy to install. Even with weak knowledge of BSD disklabels and stuff like that, you should be able to install the OS. The system installed is pretty small and neat, but at first you'll might miss lots of the GNU tools, but you'll find them on the CD if they're not already installed. FreeBSD has a good install tool that sets up most of what you want (even the FTP deamon). It's easy to get a nice console configuration. (You even get a console text based screen saver ...) FreeBSD is pretty easy to install and easy to use, therefore it's also more complex than OpenBSD. The package management subsystem is not as powerful as dpkg or RPM, but that's really not an issue. In the BSD world you use ports. The FreeBSD Ports and Packages Collection offers a simple way for users and administrators to install applications. In my opinion it's almost as good as dpkg and apt in Debian. Others think ports are much better, it's your choice. The main reasons for chooing FreeBSD over Debian GNU/Linux should be if you like "BSD way of doing things" better than the Debian/SYS V way ... OpenBSDThe newer OpenBSD versions comes with OpenSSH, an open-source version of the secure shell. OpenBSD is not very easy to install the first time, unless you are very familiar with BSD disklabelling on an Intel-based PC, but if you read the install guide, you should be able to get it right. (The last version I installed, was OpenBSD 2.7, so it might be easier now.) Once you're done installing, you have a well working and "clean" system. As with FreeBSD you might miss some GNU tools, but you'll find them on the CD (or FTP if you installed via FTP). A freshly installed OpenBSD gives me a good feeling. Nothing is very automatic, but it's "pure" and ready to be "tampered with". :-) It here differs from FreeBSD. FreeBSD has automated and done much more for you "up front". The configuration of X is not as easy as in Red Hat, SuSE or Mandrake, but pretty much the same as with Slackware and older Debian. You use XF86Setup or XFree86 -config. Solaris 8 is now free for use on computers with less that 8 CPU's. The latest version I installed at home (on a I386 compatible PC), was Solaris 7 for Intel. Installation went smoothly, and is nice if you're used to Solaris on Sparc or UltraSparc hardware. I comes with CDE, so if you like CDE or are used to CDE on Solaris, HP-UX or another unix, Solaris for Intel may be a good choice. (You can get CDE for Linux, but I've never tried it.) Solaris 7 for Intel is a good working and stable Unix system. It's bigger and seems slower/heavier than most Linux distributions I've tried, but I think maybe Solaris is more scalable than Linux. If you're used to Linux or *BSD distributions with lots of GNU tools, Solaris appears to be rather stripped. You have to install gcc, bash, fileutils and all those other things manually, they're not a part of the original Solaris distribution. (In Solaris 8 you get some of it on a separate CD.) My conclusion is that there's no point in using Solaris for Intel if you're an end user, unless you're very comfortable with Solaris on Sun hardware or if you like CDE very much. (I don't. CDE is good as a standard for a corporation, but personally I don't need it. And in the next release of Solaris GNOME will be standard if I remember correctly.) Should you use Solaris for Intel on your server? That depends on what you like or doesn't like in Solaris, what software you will run and on what hardware. I mostly choose not use Solaris because it's not Open Source or free software. In my opinion lots of administration and everyday tasks are easier on Linux systems than on Solaris. But on the other hand you might have to work a little more on a Linux system to make it as stable as Solaris - depending on what kind of hardware you have.
|