How can a Linux OS be "based on" another Linux OS?

38

10

I've been looking through quite a number of Linux distros recently to get an idea of what's around, and one phrase that keeps coming up is that "[this OS] is based on [another OS]". For example:

  • Fedora is based on Red Hat
  • Ubuntu is based on Debian
  • Linux Mint is based on Ubuntu

For someone coming from a Mac environment I understand how "OS X is based on Darwin", however when I look at Linux Distros, I find myself asking "Aren't they all based on Linux..?"

In this context, what exactly does it mean for one Linux OS to be based on another Linux OS?

Ephemera

Posted 2013-10-10T11:02:46.143

Reputation: 1 351

17and Darwin is based on BSD. You could throw the NeXT OS inbetwixt those two... :D – Keltari – 2013-10-10T13:32:11.353

12"Red Hat is based on Fedora", that one is quite inaccurate. More like Fedora is beta test for elements later used in RedHat. – vartec – 2013-10-10T14:44:05.917

Basically you take a distributions core components, change what you want, (software, logos, names, whatever...) and now you you have a "flavor", or distribution based on the other "distro" – TheXed – 2013-10-10T16:53:27.333

2The simplest way is you take the exact Linux distribution you like, and change one line, somewhere, maybe just /etc/motd, and voila, you have your own new Linux Distribution. How can a Linux OS NOT be based on an existing one. That's the harder question. – Warren P – 2013-10-10T21:21:48.507

4

I think your answer is already answered. However, here is a nice graphical representation of the history of all the Linux distros that are around: http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

– Dohn Joe – 2013-10-11T10:49:40.147

Answers

59

Linux is a kernel, Debian is a distribution of that kernel and a bunch of software to actually interact with the system.

I can now take Debian and change the logo on the boot screen to my own logo and then my distribution is based on Debian (in a very primitive way). Usually, the adjustments that are made in a derived distribution are more substantial.

The point is, if you would want to change something about a distribution, then you can just take that one, modify it to your liking and then publish your own distribution, based on the existing one (as long as all licences are respected).

Der Hochstapler

Posted 2013-10-10T11:02:46.143

Reputation: 77 228

10Accurate, but perhaps too simplistic? – Austin T French – 2013-10-10T11:35:17.267

... of course in practice the derived distribution makes some important user-visible changes, usually in specific area. For example Ubuntu focuses on polishing the desktop environment. But still most packages in Ubuntu are simply copied from Debian. – Jan Hudec – 2013-10-10T11:43:05.237

Not accurate, @JanHudec: Debian is an OS, Linux is a kernel (one of three, offerred by the current stable release of Debian). I mean, "distribution" is a moot term which is only good when everyone participating in the discussion is familiar with the techie terminology, and is usually used to compare various flavours of GNU/Linux OSes. – kostix – 2013-10-10T11:58:40.163

@kostix: The answer uses the word "distribution", so in comment I am using the same, because it is in context. And note, that the question uses the word "distro" as well. – Jan Hudec – 2013-10-10T12:12:42.637

2@AthomSfere: Sorry, I was on my phone when I wrote the post. I would improve it now, but it seems like the other answers got all the details covered. – Der Hochstapler – 2013-10-10T13:34:19.083

8@OliverSalzburg You were on the phone ? You are very addicted :-D – Luc M – 2013-10-10T15:12:20.947

9@AthomSfere KISS can also be applied to answers! – jsedano – 2013-10-10T17:12:04.090

32

Linux is a kernel — a (complex) piece of software which works with the hardware and exports a certain Application Programming Interface (API), and binary conventions on how to precisely use it (Application Binary Interface, ABI) available to the "user-space" applications.

Debian, RedHat and others are operating systems — complete software environments which consist of the kernel and a set of user-space programs which make the computer useful as they perform sensible tasks (sending/receiving mail, allowing you to browse the Internet, driving a robot etc).

Now each such OS, while providing mostly the same software (there are not so many free mail server programs or Internet browsers or desktop environments, for example) differ in approaches to do this and also in their stated goals and release cycles.

Quite typically these OSes are called "distributions". This is, IMO, a somewhat wrong term stemming from the fact you're technically able to build all the required software by hand and install it on a target machine, so these OSes distribute the packaged software so you either don't need to build it (Debian, RedHat) or they facilitate such building (Gentoo). They also usually provide an installer which helps to install the OS onto a target machine.

Making and supporting an OS is a very complicated task requiring a complex and intricate infrastructure (upload queues, build servers, a bug tracker, and archive servers, mailing list software etc etc etc) and staff. This obviously raises a high barrier for creating a new, from-scratch OS. For instance, Debian provides ca. 37k packages for some five hardware architectures — go figure how much work is put into supporting this stuff.

Still, if someone thinks they need to create a new OS for whatever reason, it may be a good idea to use an existing foundation to build on. And this is exactly where OSes based on other OSes come into existence. For instance, Ubuntu builds upon Debian by just importing most packages from it and repackaging only a small subset of them, plus packaging their own, providing their own artwork, default settings, documentation etc.

Note that there are variations to this "based on" thing. For instance, Debian fosters the creation of "pure blends" of itself: distributions which use Debian rather directly, and just add a bunch of packages and other stuff only useful for rather small groups of users such as those working in education or medicine or music industry etc.

Another twist is that not all these OSes are based on Linux. For instance, Debian also provide FreeBSD and Hurd kernels. They have quite tiny user groups but anyway.

kostix

Posted 2013-10-10T11:02:46.143

Reputation: 2 435

8

Red Hat, Debian, etc. are all distributions ("distros") of Linux.

Keep in mind that Linux is technically only the kernel, which is a single part of a working and useful system.

You'll need basic utilities, decisions regarding where things live in the system, a mechanism for installing and updating software, and conventions/standards (such as the directory where programs go) to tie this together.

Most of the GNU versions of classic utilities are often considered basic by many distros and thus is why Debian, for example, calls it GNU/Linux. With just about everything else though, there are a lot of choices. And since Linux, the GNU utilities, and many things that run under Linux are free software, anyone can create a new distribution anytime they want. Including derive from an existing distro if that distro has not included anything copyrighted or proprietary.

Images and logos are frequently something that is trademarked/copyrighted and usually cannot be directly used in a derivative distro unless you obey terms and conditions of whoever owns that. The same software usually can be if it's GPL or GPL-like licensed.

One major thing that is usually distro-specific is the package manager or method which software is maintained, tested, and distributed. Derived distributions usually are compatible with their "upstream" package managers. Nothing is stopping you from manual program installation on any Linux distro, though.

Typically this means that you'll install software the same way using the same package manager, and the locations of executables and configuration files will be in the same place.

LawrenceC

Posted 2013-10-10T11:02:46.143

Reputation: 63 487

7

With Linux there are distributions or distros. Literally hundreds of them.

Linux is Open source, so anyone (or any group or company) can modify any part of the OS that they wish. This is why some versions have different installers (.deb vs. RPM or just tar) and different commands (apt-get vs. yum).

Most distros choose a target use or specific uses and sort of evolve around that.

For example Redhat and its relatives are server oriented. Most of the OS is designed around being stable or fast.

Debian is meant to be easier to use, so it supports .deb files which are easy installer packages.

Ubuntu took the Debian base and added code and packages to make it a good first Linux distro.

Mint then went and stripped some of the Ubuntu code to make a faster OS that is similar to Ubuntu but more also more of a traditional desktop when Ubuntu changed the desktop manager to Unity.

Here is a detailed GNU/Linux family tree: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

Austin T French

Posted 2013-10-10T11:02:46.143

Reputation: 9 766

1AFAIK, sudo is used everywhere. yum's equivalent is apt-get or aptitude – Izkata – 2013-10-10T13:19:10.420

1@Izkata Yes, sorry. Its been a while and the coffee was weak this morning ;) – Austin T French – 2013-10-10T13:25:38.670

1You are confusing the kernel (Linux) with the rest of the software aggregated in distributions. – Matteo Italia – 2013-10-10T15:28:50.117

2

Expanding on the above answers. Linux is just the kernel, most of the system level commands(gcc, grep, bison) were originally written by the GNU project, most of the user level applications(XFCE, Apache, XMMS) are written by third parties.

When a distribution was typically created in the early days the kernel was bundled with the system level commands and a subset of user applications and server components. This is still true today but many of the new distributions don't want to repeat the effort of getting everything to play nice together so they take a base distribution such as Debian, CentOS, Slackware and add or subtract user applications such as GNOME, KDE, LXDE, etc. They may also write custom menus and inject their own logos and backgrounds into the distribution(SUSE, PCLinux, etc). They may go farther and create distribution specific applications such as package managers or custom front-ends.

So when you say for instance Ubuntu is based on Debian you are technically correct but these days it would be better to say, especially in the case of Ubuntu, that it is derived from Debian as changes to Debian may or may not find their way into Ubuntu.

This should help visualize what I am talking about a little, it shows how several established distributions have been forked into others. While not 100% accurate it gives an idea.

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

This image is 100% accurate to my knowledge and is a timeline of all linux distributions and shows where they came from. These days there are only a very small handful, less than six, distributions that can trace their roots back to the beginning. According to this map there are only 2, Redhat and Debian, not even my beloved Slackware was an original.

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png

Matty

Posted 2013-10-10T11:02:46.143

Reputation: 314

1

Mac OS X is based on Darwin in the sense that it run on top of Darwin. It has a run-time dependency on Darwin, so to speak.

Ubuntu is based on Debian in the sense that it's a derivative work.

If you take Debian's package and build system, Debian's packages and scripts and whatnot, and make your own distribution that is similar to Debian, then you have something based on Debian.

Users of your system will find great similarities to Debian (for instance, how the system installs, how packages are updated, or how the system configuration is shaped under /etc).

Debian is also based on Debian: the latest release Debian is based on the previous release of Debian.

Kaz

Posted 2013-10-10T11:02:46.143

Reputation: 2 277

0

Linux is just the core part that gives you access to the computer's hardware. Layered upon that is typically the GNU C Library, upon which is layered all the commands and software you're used to using (including whatever graphical user interface).

What happens in a world where the software is not locked down by some company, different groups put together a different sets of software all based on the two primary components: the Linux kernel and the GNU C Library. Those two are pretty much found in every system.

Colloquially, we call all these operating systems "Linux" or "Linux-based" and they're all very similar due to an agreement upon various standards.

On a side note, OS X's Darwin kernel is actually developed from BSD (older than Linux).

Angelo

Posted 2013-10-10T11:02:46.143

Reputation: 111