Ubuntu – Understanding different Linux Distros

command linedistribution-choicedistroslinuxUbuntu

I'm having a little bit of confusion when understanding linux based OS's. When I download the newest version of Mint and Ubuntu, aren't they the "same" at their core (kernel)? It just seems that they have different GUI's? Isn't a GUI technically just a program that runs on startup of a computer? Same as with windows (dos is the core but explorer.exe is the gui). Is anyone able to explain this?

With the sudo apt-get command can't I install Ubuntu from a mint Terminal?

I know that this is a mess of questions, but hopefully someone can clarify the differences between multiple distros before the GUI appears, and then after the GUI appears.

Best Answer

First: Windows has not been a DOS GUI for quite a while; NT-based Windows (NT/2000/XP/Vista/7/8) are totally independent from DOS. explorer.exe isn't the GUI, either: it's just a shell (you can find shell replacements for Windows, too)

At heart, all distros are based on the Linux kernel; the main differences (from an end-user point of view - there are differences in e.g. init systems, files under /etc and other places) - between distributions are:

  • package management

Ubuntu, Mint and all other Debian-based distros use dpkg/APT as the packaging system. Other distros will use other systems (e.g. Red Hat, Fedora, SuSE will use RPM, Arch will use pacman).

  • selection of packages

Effectively, Mint is an Ubuntu with some extra packages (e.g. codecs, not included with Ubuntu for patent/copyright reasons) and a different theme (to create a custom identity and avoid trademark/plagiarism questions and user confusion).

Of course, you can install any other GUI in Mint: you could use Mint's desktop environment (Cinnamon) in Ubuntu and technically (reality is another story: you probably will bump into package conflicts) you should be able to install Unity and Ubuntu's visual identity (themes, icons) in Mint.

So, in theory you could turn your Ubuntu into a Mint-ish system but in practice this is quite difficult to do.


As per the comment about the difference between 'interface' and 'shell', which can raise some confusion:

In the UNIX world, 'shell' already has a specific, well-accepted meaning:

A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems.

Compare with the Windows shell, which is a different thing entirely:

The Windows shell is the main graphical user interface in Microsoft Windows. The Windows shell includes well-known Windows components such as the taskbar and the Start menu. The Windows shell is not the same as a "command-line shell", but the two concepts are related.

In our case we would call Cinnamon (or KDE, GNOME, Unity, XFCE) a desktop environment: a set of applications (window manager, panels, notification tray items etc...) that provide the user experience.

Related Question