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 handled differently by different distributions.

Architectures
For a system to become functional, the source code of each application must be translated into machine instructions. These instructions differ across CPUs. A set of machine instructions appropriate for a particular brand of CPU (and its clones) is called an architecture. The best known architecture is called (its 64-bit counterpart, x86_64, is also very popular; it is also known as  in Gentoo), but several others exist, such as, , and.

Not all distributions support all possible architectures. Some distributions limit their support to a single architecture, while others take pride in the fact that they support a wide variety of architectures.

Gentoo supports many architectures, including:, , , , , , , , , , , and.

For more information on the different architectures, see the official Gentoo Handbook.

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 build the software. The format Gentoo uses is called an ebuild which contains instructions for Portage, the Gentoo software manager, to build 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 of 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 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: logos are added, backgrounds changed, behavior 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 successfully 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.