The Job of the Linux Distribution

by Jon Buys - Jul. 09, 2010Comments (8)

penguin

If you are using a Linux operating system as you read this, lean back and take a look at the desktop. Chances are you've got a few things running: a browser, an instant messaging client, and maybe even a twitter client. You might be listening to music in any number of apps, and chances are you are running all of them in either the Gnome or KDE desktop environment, with Compiz providing a layer of 3D window management on top of it. Supporting the window manager is X, the graphics engine that has been powering graphics on Unix systems for the past thirty years. If you dig further down, you'll find a shell running, and under that, way down deep, you'll find the kernel. This kernel is Linux, and it gives access to the hardware to all of the software built on top of it.

To take an operating system like Red Hat Enterprise Linux (RHEL) or Ubuntu and say that it's "Linux", is only half the truth. Linux now refers to the kernel and the class of operating systems that share the Linux kernel and many of the same applications. A Linux operating system, or distribution, is piece-mealed together, taking parts from the different groups that create them. Linux distributions like Ubuntu do not actually develop most of the applications that they ship with, what the distributions do is curate open source software. What the Linux developer ecosystem has created is a type of gentleman's agreement to work loosely together, producing software that also works loosely within the operating system.

Gnome is an excellent example. The Gnome project creates the desktop environment used in Ubuntu, Red Hat, and many other operating systems. Each distribution tweaks Gnome a bit by adding or removing applications, but most of it is the same between the different systems. For all practical purposes, to the non-techie, non-geek, Gnome is the operating system, because it's what they see and interact with. In Ubuntu, the default Gnome browser, Epiphany is removed and replaced with Firefox. The Gnome office suite is not used, favoring the more popular OpenOffice.org suite instead. Each distribution picks what it feels are the best parts available from the open source community.

The job of the distributions is to ensure that the software available in their repositories works together without conflict. Since each piece of a complete Linux operating system is developed independently, they are all on different development road maps with different milestones along the way. The latest version of RHEL may not have the same version of MySQL available in its repositories that Ubuntu has in theirs. This is to provide a complete system without running into dependency hell.

I find it somewhat amazing that the Linux desktop works as well together as it does. Development of standards and popularization of distributions will continue to push the desktop to a more cohesive, integrated feel.



balakrishna korrapati uses OStatic to support Open Source, ask and answer questions and stay informed. What about you?



8 Comments
 

> and say that it's "Linux", is only half the truth

Hence the GNU/Linux that many prefer to write (but not always 'say' aloud)


0 Votes

Do you get paid to write this stuff? That's 500 words to state the blindingly obvious.


0 Votes

One small correction: it’s not correct that “chances are you are running all of them in either the Gnome or KDE window manager, with Compiz providing a layer of 3D on top of it”. If you’re running the Gnome window manager (Metacity in Gnome 2, Mutter in Gnome 3) or the KDE window manager (kwin), then you’re not running Compiz, and vice versa.


0 Votes

@lefty.crupps - not all of the software shipping with a Linux OS is part of the GNU project, although admittedly quite a bit is. GNU has been trying to get people to make that change for years.


@anonymous - Maybe if you've been around for a while it is :). If the only Linux you've ever known is Ubuntu, you might get the idea that it's like Mac OS X or Windows, where the OS is built entirely by one company.


@mpt.- thanks, that should read "desktop environment", and not "window manager"


0 Votes

So if it's the job of the Linux distribution to pick the software and make sure it's working together without dependency issues, what are you supposed to do if you want to run software they haven't picked? Should you create your own distribution?


There are other ways to work out dependency issues besides using only one particular version of a library for each version of a distribution. Windows has different methods for handling the problem such as WinSxS and having programs use dlls in local directories before checking a path for them. PC-BSD also has a solution they're using and continue to improve on for dealing with multiple versions of shared libraries on the same system.


Also, there are lots of people that run a Linux operating system that never use a desktop environment or Compiz. Some prefer to run without X Windows at all, especially if they never need the GUI environment. (Take a look at the INX distribution as one example.) Some prefer lightweight window managers or window managers that favor keyboard input over mouse support. I thought one of the advantages of Linux over Windows that many Linux advocates tout is that you're not forced into using any one particular desktop environment or working with one particular look and feel for your applications and window manager. You can customize to your heart's content. It can also make it more friendly to people with accessibility issues, because they can use what programs and interfaces work more easily for them.


0 Votes

"So if it's the job of the Linux distribution to pick the software and make sure it's working together without dependency issues, what are you supposed to do if you want to run software they haven't picked? Should you create your own distribution? "


Lots of people have. Looks at the plethora of Ubuntu based distributions, and Ubuntu itself is a Debian derivative. However, my point is that it is much safer to stay in the box and keep to what is provided in the repositories.


0 Votes

My experience has been quite the opposite about staying with software that's in the repositories. If I build it myself, I know what libraries it requires and how it works. It seems to be much less buggy than what's in the repositories and has much less dependencies (even when it's the same software). It's also built with the particular settings and features I need, not what someone else might want. As one example, I tried gxine on Vector Linux and it crashed my system every time I tried to run it. I built flxine from scratch and it worked perfectly on my system.


If all a distribution does is pick out software for me and make sure it works together, I know I can do better at finding what's tailor made for my particular needs than they can. What's the advantage of Ubuntu over Windows then? When I use Windows, I can pick and choose what software I need or build it myself from scratch using source and use it and in my personal experience, it all just works. I'm an Open Source advocate and prefer to stick with Open Source, but I don't want an operating system that gets in my way or doesn't allow me to get the job done. I also don't want to create the operating system or distribution myself. I want an operating system that gets out of my way and lets me do what I need to do with it and run what I need to run on it. If Ubuntu variants or other Linux distributions want me to stay inside the box and use only what they've prepared, I'll never find the applications I need to get my tasks done.


I've been trying very hard to switch over to an Open Source operating system, but so far, I've had no luck finding the right match for my needs. I can get by on all Open Source applications, and they give me a lot of flexibility to pick the right tools for common or even unusual tasks. However, I've yet to find an Open Source operating system that gives me that same kind of flexibility. Guess I've never considered staying inside the box an advantage.


0 Votes

So if it's the job of the Linux distribution to pick the software and make sure it's working together without dependency issues, what are you supposed to do if you want to run software they haven't picked? Should you create your own distribution?chanel

There are other ways to work out dependency issues besides using only one particular version of a library for each version of a distribution. Windows has different methods for handling the problem such as WinSxS and having programs use dlls in local directories before checking a path for them. PC-BSD also has a solution they're using and continue to improve on for dealing with multiple versions of shared libraries on the same system.
true religion sale

Also, there are lots of people that run a Linux operating system that never use a desktop environment or Compiz. Some prefer to run without X Windows at all, especially if they never need the GUI environment. (Take a look at the INX distribution as one example.) Some prefer lightweight window managers or window managers that favor keyboard input over mouse support. I thought one of the advantages of Linux over Windows that many Linux advocates tout is that you're not forced into using any one particular desktop environment or working with one particular look and feel for your applications and window manager. You can customize to your heart's content. It can also make it more friendly to people with accessibility issues, because they can use what programs and interfaces work more easily for them.discount ghd hair straightener


0 Votes
Share Your Comments

If you are a member, to have your comment attributed to you. If you are not yet a member, Join OStatic and help the Open Source community by sharing your thoughts, answering user questions and providing reviews and alternatives for projects.


Promote Open Source Knowledge by sharing your thoughts, listing Alternatives and Answering Questions!