11

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.

9

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.

  • Mint's Interface (Cinnamon), is that a "interface" or more of a "shell" like you were talking about? – EGHDK Aug 24 '12 at 2:03
  • In UNIX/Linux the term 'interface' is more adequate for GUIs, as 'shell' already has a specific meaning (a command-line shell like bash or zsh). Or you can call it 'desktop environment'. – Renan Aug 24 '12 at 2:05
  • So terminal a is a shell? – EGHDK Aug 24 '12 at 2:52
  • 1
    @EGHDK Not quite: a shell (in the UNIX meaning) runs inside a terminal. This is explained in What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'? – Renan Aug 24 '12 at 2:59
  • Perfect. You've answered all of my questions. Thanks! I really appreciate it. – EGHDK Aug 24 '12 at 3:06
7

To understand what's the difference between distros, maybe you should look again at what a distro is.

What's a distro

You probably know all this, but think about it again. Linux is just a kernel. In most cases, that's completely useless by itself. Most of what it does is simply providing a software interface to the hardware on your machine so that other programs use it. A distribution is much more complex than this. Take into account:

  • A choice of applications and library specific to the use of the distribution.
  • Tools to manage and maintain the system.
  • Documentation and support channel.
  • A release cycle and community management.

There are a lot of software layers added on top of Linux to create something like Ubuntu or Mint, with infinite possibilities of configurations and choices to make.

You should also take into account the nature of the editor of the distro. Projects like Red Hat, SuSE or Ubuntu serve the purpose of businesses while others like Mint, Debian or Gentoo are managed by volunteers.

What's the difference between a distro and another

Virtually any application running on a distro is available (or easily portable) to another. After all, they are all very similar Unix systems. However, no matter what you do, you cannot change the release cycle of your distribution, the speed at which new versions are packaged, or simply the look and feel of their official forum. Maybe an example would show you better:

Let's say I am impatiently waiting for the new version of my software, for instance Python-3.3 which is due in a few days. How will it be available for different distros:

  • Rolling release distros (like Arch Linux or Gentoo) will make it available quickly in their repositories. As soon as the maintainer packages it and basic tests are run, it's available.
  • Enterprise distros will probably promise it for "upcoming versions". In the meanwhile it's still available but won't be in any official channel.
  • Debian will not make it available before it's thoroughly tested, a process that can take years. However it makes the testing repository very easily available for the public. (For instance Ubuntu creates their versions out of this version repository every 6 months).

What's the real difference between Mint and Ubuntu.

For the record, I should point out that I haven't used Ubuntu for over 2 years and barely used Mint for a few months 4 years ago. What I'm saying here might not be very accurate.

The differencce between Mint and Ubuntu is minimal, after all Mint is completely based on Ubuntu. Originally, Mint was simply a repackaging of Ubuntu with 3 differences:

  • It provided proprietary technologies in their default install (something that Ubuntu doesn't).
  • It provided a few graphical tool like the taskbar menu or the app installer that it patched on top of the basic Ubuntu install.
  • It had a higher focus on aesthetics. Its solgan still is "From freedom came elegance".

A few years ago, the schism grew wider as Ubuntu tried to push the Unity graphical environment, Mint community made a big deal about rejecting it. This is how Cinnamon came to be.

I have never tried it, but I wouldn't be surprised if someone makes Cinnamon run on Ubuntu and Unity on Mint. The argument I'm trying to make is:

Differences between distros like Mint and Ubuntu are much more about the community and the subtle choices than it is about the software itself.

Further reading

  • I couldn't edit the answer because I only want to add one word and an edit requires six characters.... I would like to point out that your probably missing a word near the start of the answer, few lines down it says: "other programs use it" should be "other programs can use it" – somethingSomething Mar 29 '15 at 7:35
5

That's a good question. My understanding is that you theoretically could, but it might not work as expected. Although Mint is based off of Ubuntu, Ubuntu and Mint use different software repositories. These repositories are what make each distribution unique. On any Mint or Ubuntu desktop system, you can set the repositories to anything you want. So, you could take a system that was installed as Mint and change all the repositories to Ubuntu repositories. Then, if you reinstall all of the packages, you've essentially got Ubuntu. However, Ubuntu and Mint each do their own little tweaks to the code (which is in turn based off of Debian). So, if the Mint packages are expecting one set of tweaks, but the Ubuntu packages provide a completely different set of tweaks, then you could end up with a very broken system.

Even some of the different "versions" of Ubuntu have really bizarre tweaks to their code. This is because Canonical focuses on ease of use rather than code correctness or interoperability. Recently, I tried installing Xfce4 onto an Ubuntu 13.04 "server" install. I ended up with a completely broken system. It was a complete mess. I ended up installing the normal Ubuntu 13.04 and then installing xfce on top of it. Everything mysteriously worked. Certain menus and programs even looked nicer, like they were being rendered with a completely different engine. However, I used all of the same configuration files and packages that I had used on the server install (and for a Debian install which runs flawlessly on the same computer).

That's just Canonical magic for you. If you leave everything as they provide it, then it usually works well. If you touch even the slightest thing, then things can start to get really weird.

  • By the way, sorry for posting on an old post but this question pops up near the top of certain Google searches. – James Harris Jul 19 '13 at 23:18
  • Welcome to the Unix & Linux StackExchange! Answering old questions isn't frowned upon here. Be sure to stop by the FAQ. – user26112 Jul 19 '13 at 23:52
3

I would focus on the goals of different distros rather than details such as which package manager they use or what versions of software they currently ship. A good goal can take you from zero to market leader in your space if that's what you're after (that's Ubuntu when they launched, but previously also Red Hat) and some fairly fundamental technology decisions can change if that is perceived as important for the goal (Ubuntu's insistence on Unity might be an example).

  • Red Hat: originally, (at the time, extremely novel) commercial success by providing paid services to users of your free product. More recently, actually charge for that product (not sure what the vision looks like now). Large enterprise customer base means reluctant to change - stability trumps innovation.
  • Debian: freedom and portability. "Universal" means try to run on many platforms; strong focus on open source means anything with closed source components is iffy. Stability is important, hence, fairly slow and conservative.
  • Fedora: originally, the free version of Red Hat once they went commercial. In practice, similar to Debian in open source zeal, but more likely to try bold new things. Used by Red Hat as a test bed for new development.
  • CentOS: Red Hat for free.
  • Ubuntu: desktop dominance. Ease of use (or at least ease of getting familiar) and standardized app suite in order to attract a broad user base. Improve on Debian's slow pace by keeping a fixed six-month release cycle based on Debian testing.
  • Mint: Ubuntu without Unity.
  • Arch: provide latest stable version of each upstream package with minimal distro-specific packaging etc overhead and a rolling-release model.
  • Slackware: be simple and Unix-like, and get out of the way.
  • Gentoo: detailed control over local package compilation based on a novel package manager called emerge.

This list is obviously abridged. Many popular distros are variants, spin-offs, or forks of the above. Wikipedia's list of Linux distributions is fairly comprehensive and reasonably structured. See also https://distrowatch.com/ for details such as current popularity statistics.

An important corollary is expectation management. A distro which focuses on universal compatibility and freedom may take usability or compatibility with a specific currently popular gizmo less seriously, and vice versa. A distro which focuses on small footprint and performance on legacy hardware will probably not want to put a lot of effort into eye candy like animated desktop effects or use cases like video editing, 3D simulations, or photorealistic games which push the envelope even on the latest generation of hardware. A distro whose goal is to provide a simple and uniform experience for people who are new to computers won't care whether a bleeding-edge filesystem kernel driver runs on their systems. Etc.

This should also inform the answer to your concrete question. It's probably not too hard to get Unity to run on Mint, but why would you prefer that over simply running Ubuntu? It's clearly possible to run Ubuntu with Cinnamon, but you would just end up reinventing Mint, and the effort is probably significant; otherwise why would they have spun off a separate project just to provide that? And this actually illustrates how a distro might regard a particular piece of policy or architecture as technically or strategically critical enough that it affects other components up and down the dependency chain in nontrivial ways, which of course also means that many workarounds are required if you try to remove it anyway.

And yet, these are two closely related distros; if you try to port software between distros, it becomes increasingly harder the farther from each other they are in terms of goals, policies, and the resulting architectural decisions, as well as shared heritage and infrastructure such as package distribution networks, standards for supporting e.g. hardware peripherals or internationalization, etc.

  • I kind of ran out of steam. Feel free to update or add to this. – tripleee Apr 23 '17 at 10:25
  • Since you gather everything, you could also refer slackware distros i.e Porteus. – George Vasiliou Apr 23 '17 at 19:35
  • I guess openSUSE should also be on the list but I cannot figure out if they have a goal of some sort, beyond "be German". – tripleee Apr 23 '17 at 19:56
0

Linux distributions are so much more than a kernel. They are all the applications that are running on top of the kernel as well (including apt-get), including many very low level things such as the init system. In fact the choice of applications used is the defining point of many distributions.

You can't install Ubuntu from Mint any more than you could take your Cadilac to a car shop and ask them to make it into a Porsche but keep the Cadilac intact. They could convert your Cadilac to a Porsche with a lot of effort and expense: They both have similar engines under the bonnet after all. Similarly, you could theoretically convert a Linux Mint installation to an Ubuntu installation (don't try this, it's a lot of effort), but they are two distinct products. Having one installed in the same place as another isn't meaningful or possible.

0

In a nutshell: what makes the identity of a Linux distribution is comprised of:

  • The configuration of the kernel: yes: all distros originate from the same source code, but between source code and the actual binary running on the computer, there is the compilation process, which involves 'configuring', i.e. making choices.

  • The choice of software that creates the interface between the hardware and the kernel, along with its configuration at compile time

  • The choice of software that creates the interface that you, the user, will use. This is where 99% of the code of a distribution goes. Once again it all boils down to: which software are chosen, and how it is configured and compiled.

All these choices are hidden from you in a distribution, as they are already made and 'packaged' for you. In that way, a Linux distribution is built in the hope that it will suit most users. But the side effect is that it is not fine-tuned for your needs.

If you want to learn a lot of things about how Linux distributions are created, I suggest you try to build your own distribution. The 'Linux From Scratch' project helped me a lot.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.