Skip to main content
GameDev.net gamedev.net
🔒 Locked

Why are there so many linuxes? they seem to be all the same!

Started by johnnyBravo Feb 27, 2006 at 7:11 AM 32 replies 6.8k views
Original Post
johnnyBravo
johnnyBravo
Hi, I've tried countless linuxes, zenwalk, gentoo, ubuntu, lunar, ark, dsl, slax..... and they all seem to be the same thing with just slightly different gui themes, and apps installed. And then alot of them have a minimal 'core' version which have nothing installed but a few basic services, eg ssh etc. I'm wondering are there any actual differences at the 'core' version level, apart from some easier installations and package managers(portage, debian's aptget). Like for servers I don't intend on installing guis as after installing them I remove the monitor/keyboard/mouse and access them via ssh to compile/install programs. So what I'm getting at as they seem to be all identical apart from a few different programs, is there a reason I would choose something like gentoo for a server as opposed to one that lets me play tetris during the install if I'm not going to install a gui(which looks to be the major differences)? Thanks
Oluseyi
Oluseyi
Quote:
Original post by johnnyBravo
I'm wondering are there any actual differences at the 'core' version level, apart from some easier installations and package managers(portage, debian's aptget).

...

So what I'm getting at as they seem to be all identical apart from a few different programs, is there a reason I would choose something like gentoo for a server as opposed to one that lets me play tetris during the install if I'm not going to install a gui(which looks to be the major differences)?

Open source is fueled by ego. Oh, sure, it's also driven by a "developer's itch," but a lot of the forking - most prevalent at the distro level because it requires less discipline to integrate complete packages into an offering than it does to bring a single package to what one considers completeness - is motivated by a deep desire to see one's creation broadly adopted.

At the end of the day, the only differentiators between Linux distributions is installation process and tools, configuration management tools, and community. Frankly, I see no reason why the first two could not be completely distro-agnostic - and LSB agrees with me.

Where ego is not the motivator, greed is. Good greed, of course, in the form of the desire for profit. Start a distro, give away the "quality assured" software, sell support, profit.

The upshot of all this is that the simple way to choose a distro for any purpose is to select according to preferred installation process/tools and configuration utilities. The downside is that you often have to install and try out a distro to get a real feel for how those two components work.

Choosing Gentoo for a server makes no sense to me, though, as there is nothing to be gained by compiling the entire installation just to serve up HTTP/IRC/DNS/FTP/CVS/SVN/etc. Happy Hacking! [smile]
Deniz
Deniz
Quote:
Original post by Oluseyi
Choosing Gentoo for a server makes no sense to me, though, as there is nothing to be gained by compiling the entire installation just to serve up HTTP/IRC/DNS/FTP/CVS/SVN/etc. Happy Hacking! [smile]

That depends on what your server does. In the case of intensive server-side processing, you might want programs to be optimized for your hardware. + its package management system is bloody excellent! :P

I agree that, in theory, the "package management / maintenance tools" part of a distro could be distro-agnostic. In practice it's not that easy, because package repositories are usually maintained by the "community". You could of course have a distro-independent package format (which RPM is to an extent), but then you lose out on the clean dependency management that systems like apt or Portage give you.
eedok
eedok
Well the first thing that seems foreign to a lot of people that don't know much about computers, is competition, and the fact that it actually exists in the linux area. Here's the areas that distros mostly differ from each other.
1. Philosophy: The vast majority of distros center around philosophy, pretty much every distro has it's own. Arch has it's simple base system, debian focuses on being free, gentoo focuses on building from source, Mandrake/SuSe/Ubuntu/Red Hat/almost every other commercial distro focuses on being available to the average user.
2. Installer/Package manager, pretty much self explanitory if you've worked with linux
3. Defaults: there's been distributions which only difference was how it was set up by default.
4. Configuration style, some distros like slackware and arch, like to use rc files like BSD others will go their own route spreading configuration across multiple files: like debian.
5. Update Cycle, some have a set release cycle, some just release when it's ready.
6. Support, this can make or break a distro alone, and is why some distros are so popular and others fail miserably.
Oluseyi
Oluseyi
Quote:
Original post by Deniz
That depends on what your server does. In the case of intensive server-side processing, you might want programs to be optimized for your hardware. + its package management system is bloody excellent! :P

While that actually sounds intelligent in theory, in practice it's bullshit. If you need to recompile a service to get optimal performance, then the code is shoddy and probably not production-worthy to begin with. If a Fortune 500 company were adopting Linux and Linux-based services, do you think they would sit around recompiling distro and apps for every server? Do you think your mission-critical needs are more pressing than theirs?

Gentoo is a distro for people with a mixture of ignorance, tunnel vision and very little to do. That is not to say that all of its users suffer from those symptoms, but that those who champion it because "it's built from source and optimized for your hardware" do.

Quote:
I agree that, in theory, the "package management / maintenance tools" part of a distro could be distro-agnostic. In practice it's not that easy, because package repositories are usually maintained by the "community". You could of course have a distro-independent package format (which RPM is to an extent), but then you lose out on the clean dependency management that systems like apt or Portage give you.

Odd, closed-source systems don't have this problem, despite every package being supplied by a different vendor completely unrelated to the platform vendor. Hmm. Maybe those open source nerds simply never got with this little concept called specifications?

[DISCLAIMER: I'm not knocking Linux, or open source. I believe that open source should be a vital part of the software ecosystem, and all past versions once removed of all application infrastructure should be held in public domain non-competitive, non-viral licenses, enabling the next generation of software innovation to build upon the previous. But that's just my idealism speaking (I usually keep it under firm lock and key).]
255
255
Quote:
Original post by Oluseyi

Quote:
I agree that, in theory, the "package management / maintenance tools" part of a distro could be distro-agnostic. In practice it's not that easy, because package repositories are usually maintained by the "community". You could of course have a distro-independent package format (which RPM is to an extent), but then you lose out on the clean dependency management that systems like apt or Portage give you.

Odd, closed-source systems don't have this problem, despite every package being supplied by a different vendor completely unrelated to the platform vendor. Hmm. Maybe those open source nerds simply never got with this little concept called specifications?


Agreed, altough the closed-source world doesn't have to deal with dependencies so it can get away with essentially everyone supplying their own ad-hoc install/uninstall programs. This is the bright side of monolithic programs and static linking and works quite nicely on the desktop. On a server, where the system (hopefully) has a competent administrator, shared libraries are superior. They make security updates more convenient and fit the unix process model where forks are preferred to threads better.

The problem with 3rd party packages in Linux has generally been the fact that dependencies (versions and names) change rapidly even between versions of the same distro. Debian has an interesting model IMO: the stable version stays the same for many years (security fixes only) and important programs are backported for those who want newer versions. This way external repositories/packages are not constantly broken. AFAIK SuSE & Co tried something similar with their "UnitedLinux", which was hyped for a short while but has since withered away.
Oluseyi
Oluseyi
Quote:
Original post by 255
Agreed, altough the closed-source world doesn't have to deal with dependencies so it can get away with essentially everyone supplying their own ad-hoc install/uninstall programs. This is the bright side of monolithic programs and static linking and works quite nicely on the desktop.

Rot. See DLL Hell.

Windows tried the Registry, which has ultimately proven inadequate, and now utilizes the Global Assembly Cache and DLL versioning (permitting side-by-side installs of different versions of the same DLL to the same location with the same name) to solve the dependency problem. You have no excuse.

Quote:
The problem with 3rd party packages in Linux has generally been the fact that dependencies (versions and names) change rapidly even between versions of the same distro.

So, basically, symlinks to shared objects are overrated and Linux distros can't work out a specification for people to adhere to. Gotcha.
SKATIN_HARD
SKATIN_HARD
It is all mostly the same with differences in design and application bundles. There are so many versions and distros to try and give everybody the same things that they use on their pc only for linux. That's why there is a media playback distro and so on. You really only need to get one of the main distros that has some good support and then download the software that you like to use.
255
255
Quote:
Original post by Oluseyi
Windows tried the Registry, which has ultimately proven inadequate, and now utilizes the Global Assembly Cache and DLL versioning (permitting side-by-side installs of different versions of the same DLL to the same location with the same name) to solve the dependency problem. You have no excuse.


Then what is the point of having system-wide shared libraries if almost every program ships its own version?
Will F
Will F
Quote:
Original post by johnnyBravo
I'm wondering are there any actual differences at the 'core' version level, apart from some easier installations and package managers(portage, debian's aptget).


Fedora Core and Hardened Gentoo ship with SELinux - though it looks like it will eventually also be a part of many of the other popular distros.
johnnyBravo
johnnyBravo
thanks guys for being informative.


btw I'm finally going with Zenwalk "Core" (although if someone has any other suggestions.) as my server. Very quick installation, although no tetris :)
Ravuya
Ravuya
A lot of them have different philosophies about packaged software -- Ubuntu and Debian are trying to stay as litigation-free as possible, so things like mp3 encoders and dvd rippers aren't in the default package selection until you check an extra box in the software updater and claim that you aren't an American.

There are also differences in directory structure -- Slackware is more like BSD with its directories and init-scripts, and Ubuntu/Debian are more like what I usually think of when I think of Linux.

There are probably other little religious battles too, like different installer packages (slackware installer, anaconda, the new ubuntu graphical installer) and purpose (tomsrtbt, puppy linux, eMovix). Also, package formats. Debian based distros clearly use deb (and usually the apt utility to get them) and RedHat based distributions use RPM (and the yum utility to get them). Slackware is fucking crazy and uses BSD-style .tgz packages and a BSD-style installer for them.

In an attempt to satisfy big-corporate sons of bitches, like Oluseyi said, a number of distributions are now joining their differences under the "Unified Linux" strategy (and the Linux Standard Base) but the closest thing we have to a standard right now is (unfortunately) RHEL.
Dauntless
Dauntless
Sort of an off topic question, but what exactly is the difference between *nix's shared objects and windows DLL's?

It's kind of pathetic that I'm finally about to get a degree in CS, and I still don't really understand runtime linking of objects.
The world has achieved brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants. We know more about war than we know about peace, more about killing than we know about living. We have grasped the mystery of the atom and rejected the Sermon on the Mount." - General Omar Bradley
Boder
Boder
I don't have the best answer for you, but in Windows DLLs have an import library (.lib) that look just like static libraries that you must link with. In linux you link to the shared object.

I believe when they are loaded into memory and called upon by different applications, there are differences for the default behavior in whether the global memory of the DLL/SO is duplicated or shared.

Also, the way DLL hell is resolved is different. Linux uses soft links to the latest version, Windows used to have applications ship the required DLLs in the same folder as the executable, now they have Side-by-Side (SxS) assemblies.
MatrixCubed
MatrixCubed
Quote:
Original post by johnnyBravo
thanks guys for being informative.

btw I'm finally going with Zenwalk "Core" (although if someone has any other suggestions.) as my server. Very quick installation, although no tetris :)


What I've always gone for in the Linux world is ease of use, which maintains a striking parallel with improved productivity. Debian-based Ubuntu has this going for it. Not sure if this is as "fun" (read: tedious) as spending X hours compiling your kernel, window manager, and various utilities by hand, and hoping to hell they are compatible with one another, but since I'm using Linux a programmer and not a Linux admin, I appreciate being able to -- what's important to me -- get to programming.
Ibaun
Ibaun
The thing about Gentoo is not only that you get to compile from source, but that you learn while compiling from source.

I guess this quote pretty much says it all:

Quote:
Originally posted by CoffeeBuzz @ gentooforums
I think the fact that questions get answered on gentoo more often than perhaps ubuntu can be expressed with this story:

2 people (Bob and his girlfriend Claire) are completely new to Linux. Claire decides shes UBER l33T!?!!111 and decides to install Gentoo. Bob, being an experienced windows user decides to play it safe in GUI-land with ubuntu.

They sit down at the same time and begin installing. An hour later Bob has ubuntu up and running after twidling through a few GUI menus and downloading some of these “binaries” whatever they are. His system complete, he goes to visit Claire. When he gets there Claire is stuck at a prompt with a blinking cursor still figuring out what a “chrooted environement” is.

Bob goes home, comes back the next morning and whoa, Claire is on the fritz. Her hair is a tangled mess, her eyes bloodshot, circular stains of dried coffee are littered around her desk - reminders of the agonizingly slow hours spent starring at her buzzing monitor typing endless streams of commands, reading countless howto’s, a couple handbooks and 2 50-page forum threads. She twitches a little as she watches compiling code fly by wondering, “For the love of all things sweet and merciful, when lord when!”. Bob, underestimating the level of frustration and tension dares ask, “Morning Claire! How’s the install goin’?” after which he quickly ducks as an airborne shoe just barely misses his face from point-blank. He quietly slinks out.

Next day Bob runs into a problem… he’s got an iPod. He plugs it in, but has never used dmesg or mount, so he gets stuck. Gtkpod keeps tossing “Error: iTunesDB not found” so he visits Claire, whom by the way is in a much better mood. She’s only slightly dismayed because OpenOffice is still givin’er from the previous day (the first time she got half way through but the build broke because she didn’t have the xml2 use flag set, which by the way was VERY annoying). Bob asks, “Hey, I plug in my iPod but I can’t mo… ” and before he even finished his sentance Claire ssh’d into his computer, wrote a udev rule, added an fstab line and configured ivman to automount it.

Bob simply stands there absolutely dumbfounded. Claire smiles and says, “Lets get married,” and at that exact moment when time seems to stop as the two new-found linux lovers stare deep into each others eyes …
… open office finishes compiling.

And they live happily ever after.
gumpy
gumpy
Quote:
Original post by BBB
Quote:
Original post by Ravuya
...
Slackware is fucking crazy and uses BSD-style .tgz packages and a BSD-style installer for them.
...


Haha I second that. But besides its package-"management" system and two other things its a great distro and one of the most popular (I've also heard that its the oldest active distro, dunno if its true).

it's one of the originals and once again my favorite. [grin]
Quote:
Original post by BBB
Gentoo:
Even if Portage/Emerge might be great as well as Gentoo's community I have to agree that Gentoo is mostly a waste of time, both when it comes to installation of software and the distro itself. I've read that some of my countrymen in the northern parts have gotten tired of all compiling and started a binary repos, similar to Debian's. Don't got any link though.

i don't like the idea of compiling everything. there are almost no packages that will show a speed benefit from compiling for your specific system. many people use gentoo just for the package management sytem alone.
Quote:
Original post by Oluseyi
..., do you think they would sit around recompiling distro and apps for every server?

AHAHAHAHAHAHAHAHAHAHAHAhaahahahahaahAHAHAhAhahahaaha....... no.
Quote:
Original post by BBB
... Linux Devs need to cut down on their selfishness and work on binary compability and overall standards. Also both *nix and Windows has issues with .so/.dll's.

amen, brother.
This space for rent.
Dauntless
Dauntless
One of these days I'm going to do my own Linux from scratch. Gentoo helped me learn some of the ins and outs of the Unix world, as did my class in Unix Systems Programming, but I think rolling your own linux is probably the best way to really learn the nuts and bolts.

The task looks daunting....but hey, I didn't choose my handle for nothing.
The world has achieved brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants. We know more about war than we know about peace, more about killing than we know about living. We have grasped the mystery of the atom and rejected the Sermon on the Mount." - General Omar Bradley
DrEvil
DrEvil
Quote:
Original post by Boder
I don't have the best answer for you, but in Windows DLLs have an import library (.lib) that look just like static libraries that you must link with. In linux you link to the shared object.


Only if you implicitly link do you need to link to the .lib If you use LoadLibrary and GetProcAddress you just need the dll and the names of the functions you want to get from the dll. These 2 functions are the windows version of dlopen and dlsym. Not that this has much to do with the topic, just wanted to futher explain that.
gumpy
gumpy
Quote:
Original post by Dauntless
One of these days I'm going to do my own Linux from scratch. Gentoo helped me learn some of the ins and outs of the Unix world, as did my class in Unix Systems Programming, but I think rolling your own linux is probably the best way to really learn the nuts and bolts.

The task looks daunting....but hey, I didn't choose my handle for nothing.


minux is another great way to learn a few things about the inner workings of a basic linux system. i learned quite a bit in only a few minutes. just slap it on a floppy and boot it or load the disk image directly with vmware server. vmware server is free and kicks some serious ass.

i just finally started looking at linux from scratch earlier today. i might give it a try under a linux dist (possibly debian) installed in vmware in the next few days or so.
This space for rent.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.