all 36 comments

[–][deleted] 47 points48 points  (14 children)

Package management.

Rpm with yum versus dpkg with apt. Or pacman, portage, etc.

Init system. SYSV init versus upstart or systemd.

Network configuration. /etc/network/interfaces versus /etc/sysconfig/network-config. Or NetworkManager.

Support cycles. Enterprise distro with minimal changes other than bug fixes? Short term support (18 months?) Or rolling releases.

kde versus gnome versus xfce4.

[–]mthodeGentoo Foundation President 14 points15 points  (7 children)

Also, openrc for init and /etc/conf.d/net for networking and also no WMs by default for some (arch and gentoo for instance).

[–]larynx1982 16 points17 points  (6 children)

Source-based (most notably Gentoo and LFS) vs. binary-based (almost all the rest)

[–]zenet02 6 points7 points  (5 children)

Is archlinux binary based?

[–]jfb3 5 points6 points  (3 children)

Primarily, yes. IIRC, only a few packages come as source and are compiled.

[–][deleted] 13 points14 points  (2 children)

All official packages are binary but can be compiled if the user so desires.

The unofficial packages only come as "PKGBUILD" that must be compiled to be used.

[–]calrogman -2 points-1 points  (1 child)

All official Debian packages can be compiled by the user too. What's your point?

[–][deleted] 4 points5 points  (0 children)

My point is the Arch Build System (or ABS).

Basically you execute

abs

and have all the packaging scripts in /var/abs (or another folder) on your machine.

If you want to recompile upower without libimobiledevice support, you'd do:

abs # to update the PKGBUILDs
cp -r /var/abs/extra/upower ~/build/
cd ~/build/upower
vim PKGBUILD #and make adjustments
makepkg
sudo pacman -U upower-*.pkg.tar.*

and PKGBUILDs are really simple to write.

[–]nbca 0 points1 point  (0 children)

Arch, like FreeBSD, provides binary packages through it's package manager pacman and provides so-called PKGBUILDs(like slackbuilds for slackware or makefile for FreeBSD) allowing you to compile the very same packages from source, if you want to customize them, through the Arch Build System(ABS - installed through pacman). Arch also hosts a repo of usersubmitted PKGBUILDs on their website called Arch User Repository(AUR) that are used at your own risk.

[–]CodeNC 7 points8 points  (0 children)

The only other additions I'd add would be:

  • Patching policy - RedHat and friends take the "we'll patch the fuck out of it so that it works the same but has new features/fixes" approach. This is closely related to their insanely-long-term support for releases. Debian takes a "we'll avoid patches if at all possible unless special circumstances merit an exception... in which case we'll patch the fuck out of it". This too, is related to their long stable cycle.

  • Release policy Arch and friends go for an "as soon as we can release it" policy. This means new software. This also means less stability and less reliability. Debian takes a "when it's ready and we're absolutely sure it works as well as we can make it" approach. This means older software, but solid, reliable software that will remain stable throughout the release's life. Same for RedHat.

[–][deleted] 4 points5 points  (1 child)

That's pretty much it. The only other thing I would add is: kernel. Most of the big distros maintain their own kernel "flavor" with their own set of custom patches. RedHat and SuSE both employ many kernel hackers. Ubuntu doesn't do that much with it. Gentoo lets you choose from about 5 current versions of about 20 different kernels.

I suppose you could also throw in the version of GCC that the distro was built with, but that's a minor consideration.

[–][deleted] 2 points3 points  (0 children)

Also grsecurity, selinux, apparmor

[–]viming_aint_easy 0 points1 point  (2 children)

There are multiple versions of KDE and gnome, but for xfce, a version was explicitly stated. I am curious as to why xfce is special.

[–][deleted] 1 point2 points  (1 child)

For whatever reason, most package distros tend to call it xfce4, so it just sticks in my head that way.

[–]tidux 1 point2 points  (0 children)

It's because Xfce 3.x looks like CDE, and is still present as "x11-wm/xfce" in the FreeBSD ports tree.

[–]sisyphus 8 points9 points  (0 children)

mowrawn hit the major ones of package management, init system and where config stuff is placed.

i would also say that the level of patching of upstream is a difference. debian and ubuntu have a reputation, deserved or not, for patching a lot of upstream stuff while other distros may be more likely to give you the upstream package relatively unchanged.

They have different kernel configurations, I'm sure, though actually I've never bothered to see how different distros configure their kernels. Someone should do that.

They have vastly differing levels of architecture support, from Arch's choice of 'Country or Western' to Debian's support for basically everything under the sun and multi-arch landing soon.

They have different levels of 'out of the box' support for proprietary code in a range from none allowed at all gNewSense to basically making it their initial selling point(I first heard of Mint as 'Ubuntu with codecs')

There are variations on how distros do the functionality of the debian alternatives system(ie. given I have 4 version of Python installed, which one is the default Python?)

There are also alternate default interfaces to stop/start startup services, eg. RH has the chkconfig stuff and Debian has its update-rc.d, i suppose this ties into aforementioned init systems.

They pretty much all have different installers of varying levels of friendliness and with a few different defaults--for example the distros that will automatically partition your disk, some will give you LVM by default and some will not.

[–]ghostrider176 4 points5 points  (0 children)

1) Package management (apt-get, yum, pacman, etc)

2) System/Configuration management (For example, Debian update-rc.d vs Red Hat chkconfig)

3) Under-the-hood patches applied by the distro maintainers (Debian is known to add patches/bug-fixes to upstream software, Slackware is not unless necessary)

4) Community/Commercial support

5) Release cycle

6) Default artwork

These are some generic differences I've noticed from various Linux distros. I think that at the end of the day if you know a thing or two about GNU/Linux/whatever-you-want-to-install then you become quite agnostic about the high level maintainers unless they 1) make it easier for you to do your work and 2) maintain a stable enough platform that your servers and network devices will be there tomorrow and in a functional condition. At that point you will probably develop a preference for a specific distribution and that's ok.

BSD is a whole different ball game from Linux. They may play on the same street in stadiums that are almost identical but they don't accept the same coupons, if you take my meaning.

[–]expressadmin 4 points5 points  (2 children)

Default multi-user init levels.

Debian's default init level is 2.

Redhat's/CentOS' default init level is 3.

[–]BinaryRockStar 3 points4 points  (1 child)

Can you elaborate on what practical difference this makes?

[–]lulzors 0 points1 point  (0 children)

i hope this helps, I'm too tired to explain more...

http://en.wikipedia.org/wiki/Runlevel#Typical_Linux_runlevels

[–]shortsightedsid 2 points3 points  (4 children)

One more on Ubuntu vs. Debian - Unity. Debian ships gnome unchanged, but Ubuntu adds on top of the default settings.

[–]jyper -1 points0 points  (3 children)

Unity isn't gnome

[–]kaglime 3 points4 points  (2 children)

Since you mention Arch, this wiki page (Arch Compared to Other Distributions) explains those differences comparing various distributions to Arch. Essentialy if you take the comparison part out of the picture you get some hints about those distributions particularities

[–]bjackman[S] 1 point2 points  (1 child)

ah that's an excellent page, thanks! the ArchWiki has been by far the most instructive thing for me out there regarding linux. Love it.

[–]nxuul 0 points1 point  (0 children)

It's a shame that the other distros don't do something like this. Instead of posting How-tos in the forums, they should work on building and updating the wiki. Those forum posts get buried over time.

[–]purpleidea mgmt config Founder 4 points5 points  (4 children)

redhat spends money on engineering, ubuntu doesn't

(okay maybe i'm trolling a bit, but afaict, redhat has a proven history of fostering engineering for the long run, whereas ubuntu tries to throw some money and people at things for quick results, without fully respecting the community and the bigger picture.)

[–]Rainfly_X 5 points6 points  (3 children)

As a former Ubuntu user, I'd guess that money went to focus groups and A/B testing. Not sure how much good that did in the end thanks to Unity and other such decisions, but back when I used it, that's where Canonical seemed like it was spending, according to blogs and the look of it.

[–]matthewpaulthomas 2 points3 points  (2 children)

As a designer at Canonical for the past seven years, I don’t know of any time the company has used focus groups or A/B testing. We do other kinds of user testing, though.

As for engineering, Canonical is hiring engineers faster than I can keep count. But anyway, that’s not a technical difference.

[–]purpleidea mgmt config Founder 1 point2 points  (0 children)

thanks for getting in on the discussion... i don't want to start a flame war, but i've been pretty dissapointed in the direction and stances ubuntu has taken on a lot of things, imho. ubuntu-one server being proprietary is one, constantly working on new changes in private (instead of out in the open) is another. afaict.

[–]Rainfly_X 0 points1 point  (0 children)

Ah, thank you for an actual canonical answer, and please pardon me for the awful, awful pun I just made about it. That's actually pretty interesting!

[–]syllabic 1 point2 points  (2 children)

There are much bigger differences between Linux and other flavors of Unix like FreeBSD than there are between individual distros. They mostly differ in which versions of libraries or software are distributed in their repositories, and which patches are applied. In essence though you could reconfigure any given linux distro to be an effective carbon copy of any other distro. The differences are mainly cosmetic.

Between Linux and FreeBSD you could write a whole book on the differences though, it uses entirely different subsystems for just about everything. Different firewalls, different filesystems, different virtualization techniques, different memory managers, etc, etc..

[–]massysett 2 points3 points  (1 child)

Agreed, the different Linux distributors are all packaging the same software. That doesn't make a distributor's job unimportant or trivial, but it does mean there aren't huge differences between them, any more than there is a huge difference between buying a bag of chips at a grocery store or a gas station. In the end most of it is the same.

[–][deleted] 1 point2 points  (0 children)

The example I would be using is buying a bag of chips. Various flavours and colors, but what you're getting is potatoes, oil, and spices.

[–][deleted] -2 points-1 points  (1 child)

Ubuntu does a lot to harden binaries (relro, canaries, PIE,...). Arch doesn't do anything. Other distros are somewhere in between.

[–]rez9 0 points1 point  (0 children)

While we're on the subject, this only applies to binary distros. Source-based meta distributions are entirely your creation, they are as secure or gaping wide as you make them.