Linux Distribution of Preference
Of course there are many different Linux “cores” available; i.e. Debian, Gentoo, Red Hat, Fedora, SuSE, et cetera; all are quite good choices, since they all avoid the implementation of a Windows kernel (of course, anything other than Windows is normally a wise choice). But where do we begin when deciding what Linux distribution is best for me? First off, a few things need to be explained. First off, what is Linux? Linux is a derivative of UNIX, (developed by Bell labs) by Linus Torvalds, hence the “Lin” and then the “ux” representing the part of UNIX. In terms of the actual coding, the Linux kernel (or core, the heart of the operating system) was written for the most part in c89, C. Why do people prefer Linux over Microsoft, and why should I migrate to a foreign operating system? Linux is generally free (minus certain distributions, such as Novell Suse) and is open source. Open source means that the source code (pre-compilation where everything is in binary) is open to the community to tweak, and to make “better” if they so choose; though they may not take full credit, need to follow certain rules, etc. (GNU, or what have you). The reason most people migrate is to avoid one of many things. The first thought that comes to mind that first hits the conversation is the idea that it is free, and most software that is installed is free as well. Then comes the reliability/stability argument, lacking the Microsoft name that some extremists consider tyranny (this is a separate rant) the massive support, and the speed of the computing. I feel that it is necessary to go through each example a tad bit more thoroughly; starting with the idea of “free software.”
The idea of “freeware” or “shareware” has been around forever, but no where near to the extreme that is Linux development. Almost all projects that are open to the community are indeed free to use, and manipulate. The idea of not being bound to a company's software is always a pleasant thought (see article “DRM – The Ethical Point of View”).
Since the Linux kernel is constantly being revised, and tested by such a wide range of people where contributions are constantly being made (just like most open source software projects) it enables more eyes to see what is going on, and more people to “proof read” the code, and more people to test it, etc. Thus, such a mentality encourages the idea of stability and superior performance, than to closed source software where only certain individuals who work for the given company may view the code. Also, the most efficient language (in my opinion anyway) is used to program the kernel, and recompiled into assembly for the initial OS, etc. (make reference to “How the Microprocessor Works” article for further information).
Microsoft Label Lacking:
Now we all know that many people (sadly enough) switch to Linux/UNIX purely for the intent to “look cool” or just to stray from the pack for reasons that are are unknown/most likely silly. Yes, I do realize that numerous people will disagree with me with such a hasty generalization, but the fact remains, and so do my experience with many individuals who act as such. But for the select few that disapprove of Microsoft, or any company that wishes to charge obscene figures for software that is insignificantly different than the last, this is when people make their move (or “the move”). Of course Microsoft software do have their “up's” as well as many “down's,” though one must admit, since most companies have seceded to developing their games/software for Windows, they do hold the market share (especially the large support for directx, whereas Linux supports OpenGL, with the exception of the usage of wine). But with the lack of the cost in software, and the lack of a “label” of a company, there seems to be a lot more freedom, and “wiggle room” if you will for the average end-user, all the way to a programmer, or system administrator.
Contrary to popular belief, there is an enormous community of people online who partake in helping with development, problems, or what have you with any individual who seeks knowledge in the Linux realm. Albeit what distribution you are having difficulties with, there is some community, forum-like site out there to help you, and whatever odd error you are getting, it has been posted somewhere, along with most likely a resolution.
Ah, I smell another ra(n)t approaching. Alright, since we understand that the Linux core is written in the most efficient manner, since it is widely proof-read, etc. what makes it run so much better than Windows? Well, there are numerous reasons besides pure coding, but the architecture. Simple reasons such as the file system (Linux ext2, ext3, etc. never need be defragmented, by virtue of how the file systems are set up) the lack of a registry (an atrocious design by Microsoft that includes way too many vulnerabilities, but this is a separate rant) how the kernel is compiled upon every boot (Gentoo) amongst many other ideas/brilliant designs. These are only a few ideas, and many are left out.
Now for the theory, please take this as a grain of salt. Between Intel and Microsoft, I feel a common trend line that has been in the works for many years. Ever noticed that the simplest of software requires more memory than say if it were made a few years prior? Also notice how Linux can run on a 300mhz machine with no problems? This is why people call Microsoft “bloatware.” It has been speculated numerous times that Microsoft has a deal with, oh say, Intel. The “I scratch your back, you scratch mine.” If Microsoft makes more “bloated” resource-heavy software, then Intel will be able to develop more “heavy” more intricate software to support the aforementioned bloatware. Therefore, both companies make quite a wonderful profit. If nothing else, this would be a classic business tactic that may be abstractly found in other scenarios. I will let you speculate the rest. [/rant]
It is important to keep in mind why you desire to make the change, is it any of the prior mentioned reasons, or can you make your own case?
On to the beef of the article (or if nothing else, why you are most likely reading this, to hear my opinion). As mentioned earlier, there are hundreds, if not thousands of distributions of Linux available, and each flavor suits each individual nicely. It all depends on what you wish to do. As a practicing network security auditor, I feel that Gentoo is the best “core” of choice. Besides the fact that it is recommended by Kevin Mitnick, (when I met with him early last year, the owner a a network security company) I feel this to be the most cleanly written core. It screams efficiency, security (pseudo BSD) and gives much room for optimization/configuration upon installation. It is almost as if you are given all of the car parts, and asked to build your dream automobile; all it takes is a bit of intelligence. Gentoo is free, has much online support (even though the forums don't always consist of the friendliest lot, but for the most part is good) and highly efficient. Considering the fact that the kernel is compiled every time among each boot-up, and tailored specifically for your given hardware, this is by far a men among men of operating systems. I find it to be quite a secure operating system, considering the network configuration that is available upon pre-installation – options appear to be virtually endless.
Now, for the weak/timid at heart. If one does not feel like compiling Gentoo, or what have you, never fear, Sabayon is here. Sabayon is a distribution of a pre-compiled rendition of Gentoo, where upon installation, it optimizes the software where it best fits your hardware for you, amongst many other “tweaks” here and there, thus making it quite efficient. Not only does Sabayon come “packed” if you will with all software of desire, you may include/exclude whatever software you please upon installation with a user-friendly installation GUI. In terms of the GUI environment, you may choose between KDE, Gnome, or Fluxbox. From the superficial point on out, it is fairly similar (setup wise/environment appearance wise) to any other Linux distribution that does not require massive amounts of command-line configuration; similar to Ubuntu, Knoppix, Open Suse, and so on.
In the end, there is not one distribution that is right for all, but one may certainly take any distribution, and make it their own, to suit their needs. But, all I have given is my mere opinion, take it however you want. Hopefully, I have helped some individuals narrow down their distribution, and why Linux may be a good choice for them (or possibly not). Good luck, and happy compiling!