User:SwifT/Complete Handbook/Making a choice

Differences
Now that you know a bit about Linux and Free Software, you need to make a choice about the distribution you want to use. As you already know, a distribution makes it easy for a user to install and maintain software. But a distribution does a lot more than this. In the next few sections we describe various topics which are filled in differently by distributions.

Architectures
For a system to become functional, the source code of an application must be translated to machine instructions. These instructions differ from CPU to CPU. A set of machine instructions for a certain brand of CPUs (and its clones) is called the architecture. The best known architecture is the x86 architecture (possibly with its 64-bit counterpart, x86_64 which is also known as amd64 in Gentoo), but several others exist, such as alpha, sparc, ppc, ...

Not all distributions support all possible architectures. Some distributions even limit their support to a single architecture, others take pride in the fact that they support quite a lot architectures.

Gentoo supports quite a few architectures: alpha, amd64, hppa, ia64, mips, ppc, ppc64, sparc, x86, arm and more ...

Package building
There are many ways a software title can be packaged. Some distributions do not prebuilt the software (so that the system still needs to compile the source code prior to installing it to the system), but most do. Prebuilt software can be packaged in an RPM file (RedHat Package Manager), a DEB file (Debian Package), ... Each of those package formats has its advantages and disadvantages.

By default Gentoo lets the system built the software. The format Gentoo uses is called an ebuild which contains instructions for Portage, the Gentoo software manager, to built the software for the user.

Provided software
Some distributions only provide a few software titles because they aim on a very particular niche (like embedded Linux, a Linux terminal server, ...) while others provide a plethora on software titles. This is quite different from other operating systems where you need to acquire additional software, or at least have to locate, download and install it separately. With Linux, this process is often embedded in the distribution which makes it a lot easier for the user.

Gentoo provides more than 16000 packages.

Preconfiguration
When you install software, the distribution can try to preconfigure the software for you. Some distributions go quite far so that the user hardly needs to know how to configure anything - for the common user, everything works out of the box. Other distributions do not try to configure most packages and leave it to the user. After all, the user knows best what he needs and what not.

Gentoo mainly stays with the configuration as provided by the software project and informs its users how to configure the software through excellent step-by-step documentation.

System maintenance
A Linux system is not only a collection of installed software, the software needs to work well (configuration) and should be manageable. System maintenance is a job where you make sure that the system works as it should. You can maintain your entire system through a single software package (like webmin) or through a collection of software titles.

While some distributions try to provide an all-in-one maintenance solution, most distributions opt for a decentralised maintenance with specific tools for specific jobs.

Gentoo does not offer any configuration tools - the user should configure his system through the standard Linux tools.

Branding
When a system is branded it is beautified: logo's are added, backgrounds changed, behaviour altered, ... so that the system feels as if it was developed and released by a single entity instead of several ones. Not all distributions like branding because it removes the default look and feel that the individual software projects have given to their software. They leave it as-is out of respect for the software projects.

Gentoo does not brand applications by default.

Installation
Whereas several distributions have a similar or even identical way of installing software, almost no distribution has the same installation method. Some distributions provide an installation where you hardly need to provide any information, others require you to perform every single step yourself. And all the other distributions are situated somewhere between those extremes.

Gentoo lets you perform every single installation step yourself, making a great learning school for Linux internals.

Policies
Albeit this is less visible in most distributions, some have a policy they adhere to. For instance, some distributions might have a policy that they don't allow non-free software in their distribution. Therefore such distributions will always be free to use with no restrictions whatsoever (apart from those governed by the free software license(s) they use).

Gentoo has a policy, written down in their Social Contract. It is less strict than the one mentioned in the previous paragraph, informing the user that Gentoo will never depend on non-free software. In other words, you will always have the ability to use a completely free Operating System with no crippled features whatsoever. Gentoo does offer non-free software through Portage - at least, it offers the instructions on how to integrate it succesfully on your system. It will never allow you to install software against the spirit of the license which it is released under.

Why it doesn't matter
When you are starting with Linux (and Gentoo Linux) you will undoubtedly find it difficult to know what software to install. How is the best e-mail client called? Can you run Windows applications on Linux? How is the support for the many Word documents you might have? How can you edit pictures?

There are many, many tools available for Gentoo Linux. They offer a plethora of possibilities and functions. It is not mandatory for you to know what software you will use now: when you install Gentoo Linux, you first install a minimal, bare-boned system. When you have this, you can start finding out what software you would like to use.

Since all software is freely available, the best way to know what software to use is to try and test them out until you find one that suits you the best. Of course, it is often wise to build upon the knowledge of others: ask around what the best software would be for your needs.