- slide 1 of 6
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.
- slide 2 of 6
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?
- slide 3 of 6
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.
- slide 4 of 6
Here is one of the most important challenges: the updates. During the lifetime of the distribution there will be many bugs, performance issues, security holes and new releases. How will these be presented to the user? What about the overall design of the system; will updates have the potential to break an already solid system? Again, these questions must be addressed when designing a Linux distribution.
- slide 5 of 6
Desktop Environment Selection
A Linux distribution who's focus is providing a secure production server will not make use of a desktop environment as it creates too many security concerns. This is not the case with other distributions so you will have to decide what desktop environment to include in your Linux distribution. Will you go with one of the big names, Gnome or KDE and take advantage of the updates released by their developers? Perhaps you will pay more attention to the speed of the OS over aesthetics and offer XFCE, Fluxbox, or another lightweight desktop environment. Will you decide to take one of these desktop environments and customize it to distinguish your Linux distribution? If so, what issues will this cause with updates & ease-of-use? During the development process these questions will have to be answered and the scope of your Linux distribution narrowed further to address the needs of your specific users.
- slide 6 of 6
Reaching the goal of a perfect Linux distribution is a nearly impossible task. Programming and application choices aside, one distribution may not be a perfect server or a perfect server may not be a perfect audio & video managing system. As we also discussed, building a Linux distribution is not about bringing some files and folders together and making it available for download. It involves careful selection of applications, careful planning with the updates and release cycles as well as many other issues that will arise during the planning and coding phases.
In the next installment of this series we will discuss the perfect Linux application.
The Perfect Linux Distribution
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.