- slide 1 of 7
The Perfect Distribution
In my opinion, the perfect Linux distribution is always a focused distribution: Backtrack is not suitable for the newcomers whereas Mandriva is not suitable for the penetration testers. The user group that the distribution focuses on results in efficiency on the developers side. Instead of trying to pack everything into the Linux distribution they choose specific applications. This is also a benefit to the user, for example, lets assume I want a simple desktop on which I can read my e-mail using Thunderbird or Evolution. It would make little sense to waste disk space by installing a complete e-mail server nor do I have various unnecessary entries in my programs menu. At the very least this is a win-win situation for both the developer and the user.
- slide 2 of 7
The Perfect Package Manager
A perfect package manager, as we have discussed, has to simplify application management for the user. It must conserve bandwidth and disk space as well as offer both a command line interface and a graphical user interface. For this purpose, we have brought PISI of Pardus and Portage of Gentoo together leaving one more step to arrive at perfection: the Graphical User Interface. The interface has to conform with the principles, which we discussed under the “Perfect Application” article and also has to have the screenshots of the applications that the user can see before he or she decides to install. Additionally, the package manager has to be able to remove the packages completely! It must remove the dependencies that are no longer needed from the system. Is there such a package manager that has all these features? Unfortunately no (at least as of this writing).
- slide 3 of 7
The Perfect Application
The choice of the perfect applications is closely tied to the focus of the distribution: will it be a server-oriented or a desktop-oriented distribution? As we have discussed in the “Perfect Application” article, we will assume a desktop-oriented distribution.
The chosen applications need to provide a good balance of stability and cutting edge. There is no point of presenting the user with a unstable application, with which he will manage his daily tasks, e-mails and calendar. It is wise to include the latest stable versions of the applications with the distribution, rather than including the release candidates or betas.
There is also the issue of security. The included applications have to have a firewall that is installed by default and can easily be configured by the user. As for the firewall, I personally like the Zone Alarm which is available for Windows: it acts as a solid firewall, informs the user about its actions, is easily configurable and does not get in the user’s way in an annoying manner.
Perfect application examples? Firefox, Evolution, Transmission, KGet, KTorrent, OpenOffice.org, Thunderbird, K3B, Pidgin, Xsane, Kate, Kile to name a few (I am hesitant to add Kontact here since as a personal information manager (PIM) as I have experienced some instabilities with this application). Open these programs and see what they do. You will see they do what they claim to do simply and efficiently: they are not like -say- Nero, which claims to be an optical media (CD/DVD) burner but includes additional features such as media management (which I believe nobody uses) coming in at a half a gigabyte total footprint. Lets stick to the intended focus of our applications in Linux and keep the applications small, efficient, and easy to use.
- slide 4 of 7
Perfect Linux Distro - Reality or Myth? Now we are creating a 100% perfect Linux distribution and itemize our thoughts. We take a distribution, Gentoo to be more specific, and talk about the installer, partitioning and installation options.
- slide 5 of 7
Summing up All
Is the “perfect Linux distribution” an attainable goal? Yes it is. Distributions such as Ubuntu, Fedora, openSUSE come close to this goal and as a result they are in the top rated list on Distrowatch at any given time.
Finally, let’s push the subject forward and create what I feel is a perfect Linux distribution. Personally, before I install any distribution, I check its package manager and the maintenance process. Ubuntu uses Debian’s apt, is maintained real-time so it’s a good candidate for me. Fedora is also a good choice but since Fedora uses rpm, it’s my second choice. In the end my all time favorite is Gentoo, as long as it’s “taken care of”, as it used to be a couple of years ago. To create my perfect package management system I choose Gentoo as the base:
1. I create an installation DVD, which gives the user the option to install from source code or binary. Binary is faster but source code compilation will result in a program that will run better. The installer will check in detail the various extensions of my hardware, specifically my processor (CPU) and set the compilation options automatically without user intervention (of course making an “Advanced” options to allow the user tweak with the settings). For a novice user, it will just be a click on the “Next” button.
2. Partitioning must not be confusing. The end user need not to know about the boot, swap, primary and extended partitions nor about the logical volumes. The installer has to tell the user what he has on the computer and how the system is to be installed.
3. After that, I present the options to the user to select: desktop/notebook installation, netbook installation, server installation, kiosk installation, specific-purpose installation and I would provide detailed selections in the interface. For example, if the user has selected a server installation, would it be a firewall, web server, file server, proxy server, or a combination of them. Does the user want the graphical user interface to be installed but not started by default. Similarly, if the user selects desktop/notebook installation, is it a simple end-user system with office, productivity, graphics editing, Internet applications or will it be a multimedia editing distribution. Of course, the user will be able to select any combination of any installation options, such as a graphical end-user installation with file server applications installed. (This is what I like about SUSE/openSUSE installation: you could install anything that you want in infinite combinations.)
- slide 6 of 7
Is there a Perfect Linux Distribution? Everything Together and Conclusion We conclude our article by discussing the installation of the distribution, repositories, package management, updating, help and support, financing and certification
- slide 7 of 7
Summing up All - Continued
4. After the user’s selection, it would be nice to present screenshots of KDE, Gnome, XFCE, and Fluxbox. This will enable the user to get an idea of what the desktop environment looks like and let the user choose whatever he wants to use. The installer can choose which applications to install in the background; for example if the user chooses KDE, the installer will choose Kontact, KTorrent, etc to install, but if the user chooses Gnome, the installer will choose Evolution and Transmission. An option for an intermediate or advanced user to install any combination of applications he or she sees fit will also be included.
5. If the computer is connected to the Internet, the installer will connect to the online repositories and check for the most recent stable release of drivers for the hardware it detected. If it finds newer drivers it should be able to download them and configure them during installation.
6. There should be no content in the repositories other than the “source code”. The user must not be bothered with the dpkg, rpm, etc. The package format should be basic and the package manager should be able to see the dependencies by checking the contents of the configuration file and adding the relevant dependencies to the download queue. Since Linux is full of choices, there would be other distributions and other package formats. The installer should be able to check the other distributions repositories, download the specific packages, extract the files it needs to perform the install as necessary (such as the alien application which can convert between rpm, dpkg, slp and tgz files). Personally, I would advise all distribution developers to agree on a package format, which would be source code and then write package managers which can process the source code.
7. The software installer should be capable of displaying screenshots of the application, which the developer should be required to provide when he is uploading his program to the repository. If the user is installing applications from the command line, the syntax should be as close to English as possible (easier to customize for localization); for example instead of apt-get install X or yum install X, the command should look like install application X. The parameters should also be natural, such as install application X for all users or install application X for current user. This will also have a positive effect on the users who are hesitant to use the command line.
8. Nothing is perfect without help and support. The distribution must have good documentation and online/offline help files. Another must have is a first-run-wizard which would be readily accessible to the user. The user should be able to chat with the developers or the power users via a web interface and ask for solutions. The support can be financed by defining support tiers, for example “how can I view my photos” can be tier-1, which can be USD/EUR 0.1 but “Squid crashes when user X connects” can be tier-5 and can be priced depending on the severity/complexity of the application. This way, both the end users and the corporate users can enjoy their operating system to the maximum and feel backed up with a professional company other than the forums or Google search. I dream about seeing such a thing from Linux Foundation or a group of Linux Distributions (openSUSE, Red Hat, Gentoo, Pardus, Mandriva and all others).
9. The distribution should have certifications. Not only for system administrators, but ranging from the average user to system architects. The courses and exam fees will also help financing the distribution.
That’s what I can think of to make a distribution 100% perfect. But if I missed anything, hit the comments and shout!
The Perfect Linux Distribution - Myth or Reality
As far as operating systems go, Linux is about as perfect as you get. In this series of articles we will discuss what makes a Linux application, package manager, and overall distribution perfect.