The Perfect Linux Distribution

Article by Tolga BALCI (23,398 pts ) , published Jun 28, 2009

What type of effort goes into creating a Linux distribution? If you have ever wondered what is involved in making a perfect Linux distribution, you have come to the right place!

Introduction

As Linux users and developers always point out, Linux is full of choices. Other operating systems, Windows in particular, have various releases but are nowhere near as specialized as many of the Linux distributions. Lets say you want to use Windows as a production server, you can easily do this, but it's not nearly as fine-tuned as Linux distributions. You have nowhere near the control over the OS (Operating System) and have limited opportunities to tweak the OS to meet your specific needs. Windows comes as-is, as a general purpose OS, rather than a OS tweaked for a specific task.

With Linux, there are a wide variety of options. If you want to run a full-blown server, you can choose Debian, openSUSE or Ubuntu Server. If you are in need of a penetration testing (pentest) distribution, Backtrack is a solid choice. If you want a general purpose operating system, Ubuntu, openSUSE and Linux Mint will all suit your needs perfectly. Then we have the distributions tailored towards relatively old computers, Xubuntu, Puppy Linux , DSL (Damn Small Linux) to name a few. Linux is all about choices and developers trying to meet the needs of specific sets of users. Is the perfect Linux distribution one that can meet everyones needs? Do we, as Linux users, even want to go that way with the OS? Some Linux enthusiasts would argue that the perfect Linux distribution is the one that meets your needs perfectly. We'll talk about this and more in the final installment of this series. First, lets take a look at a few of the more prominent parts of a solid Linux distribution.

Applications

When a developer decides to make a Linux distribution from scratch, the first point that he will consider is the purpose of the distribution. Is it for a general-purpose use? Is it a hardened Linux distribution that is intended to run as a server? Maybe he's looking to create a Linux distribution so tweaked it closely mimics Mac OS X. Then, depending on the use of the distribution, he will then select the applications. For example, if the distribution will be a server, Exim, Sendmail, Postfix or Courier will be considered as the default e-mail server. Once the purpose of the distribution has been decided on the developer will have to make a decision on package management. Will he go with one of the more popular package management systems or modify/create one to meet his needs?

Package Management

One of the main challenges the developer will face is package management. Will he use one distribution as the core and fork from it, taking advantage of its package updates? Will he build a distribution that uses an already-established package system or write the package system from scratch? How will the applications be packaged? How will they distributed? How will the dependencies be managed? What about packages not present in the distribution’s repository but wanted by the users? These are all questions the developer will have to consider and in the end make a choice of how his software is going to be packaged.

Read on for updates, desktop environment selection and our thoughts.