70

What is the relationship between Unix, Linux, Ubuntu, and Debian?

I suspect they are all Operating Systems that are based upon one another - similar to how Windows is based on DOS. Is my suspicion correct? Do these operating systems have the same type of relationship with each other as Windows has with DOS? Are they related to DOS or Windows in any way?

11 Answers11

75

There's one more thing you need to know of: GNU.

GNU stands for "GNU's Not Unix", and it is an attempt to create a free, independent version of Unix, developed by the Free Software Foundation.

They got very far, they made a C compiler, a C library, a linker, editors, shells, all the commands you'd expect in a typical Unix shell, lots of stuff. But the kernel (called "Hurd") wasn't finished. All the things outside the kernel (running as processes owned by users) are together known as the "userland".

When Linus Torvalds created his Linux kernel, he didn't create a userland. He just had a kernel, it wasn't a full system either. It turned out to be possible to compile his kernel and use it inside the GNU userland (this was probably not trivial, but I wasn't there and don't know).

The OS people usually refer to as "Linux" actually started out as the Linux kernel with the GNU userland, and lots of other stuff has been added since. The Free Software Foundation has always insisted it should be called GNU/Linux as a result.

Debian is a "distribution" of Linux; they did all the hard work of compiling all the various tools you needed to make a whole Linux system, compiled them and offered them for download as a bunch of floppies. Or a CD, later. Others did the same, e.g. Slackware, Red Hat and so on.

Many other distributions were later created, often not from scratch, but taking an existing distribution as a starting point and adding extra software to it, or organizing it differently, or whatever. Ubuntu was based on Debian this way.

55

Unix is an Operating System developed starting in 1969. It was originally designed to be a developer station rather than application platform, but, as development progressed and different vendors got involved, Unix was added to.

Unix was initially written in assembly, but later developed into C.

In relation to the others, the Linux kernel is Unix-like.

Linux is a Unix-like kernel. It was initially developed by Linus Torvalds through the 1990s. This kernel was used in the initial software releases by the Free Software Movement to compile a new Operating System. The kernel is responsible for managing the systems resources and allocating them to applications.

Note here despite many of its releases being referred to as 'Linux' this is a specific aspect which makes up the Operating System along with the text editor, compiler, debugger etc and not an Operating System in its own right.

Debian is one of the forms of this Operating System released in the early 1990s as is one of the most popular of the many versions of Linux available today.

Ubuntu is another Operating System which was released in 2004 and is based on the Debian Operating System. It is very popular because is is easy to learn without the need to use the terminal.

  • Linux: Kernel (Still in active development)
  • Debian: Early Operating System to Ubuntu (Still in active development)
  • Ubuntu: Newer Operating System based on Debian (Still in active development)
  • Unix: An old Operating System which the Linux kernel loosely based on

Reading: Linux Kernel
Reading Debian
Reading Ubuntu
Reading: Unix

If you are really interested in learning the history behind all this I recommend a film called Revolution OS, which goes into a lot of the history behind the development of this free software movement.

16

"Unix" was originally the name of an operating system for the PDP-11, developed at Bell Labs in the 1970s. Its design was immensely influential, and it was copied and reimplemented dozens of times.

Nowadays, "Unix" is an umbrella term for an entire family of operating systems, some but not all of which are directly descended from that original OS; anything whose primary system programming interface is compatible with the POSIX.1 API specification can legitimately be called an implementation of Unix -- and there are dozens of them. It is easier to list the operating systems still in wide use today that are NOT implementations of Unix:

  • Windows
  • IBM's z/OS and their relatives, which have been under continuous development since before 1970
  • a few deeply-embedded things that are more like runtime libraries than complete OSes

(There are also a bunch of experimental research prototypes that are trying to move beyond the Unix design, but they don't qualify as "in wide use", alas.)

"Linux" is the common name of one implementation of Unix. It has been around since the 1990s and is one of the top five most commonly used implementations today -- probably either #1 or #2, depending on how you count these things.

Linux is unusual in that the kernel, the C library, the compiler, the basic set of "shell" utilities, and so on are all developed by different groups of people; moreover, there's more than one choice for most of those pieces. Someone has to pick a set of pieces and put them together and make sure they work properly in combination. That someone (usually a group of people, nowadays) is traditionally referred to as a distributor of Linux, and their output is a distribution. Debian and Ubuntu are distributions of Linux; they used to be extremely closely related but have since diverged quite a bit.

(Technically, the name Linux refers specifically to the kernel, and it'd be a little weird to call an operating system Linux if you didn't use that kernel, but there are people keeping everything else and swapping out the kernel, e.g. Debian kFreeBSD.)

(Footnote for pedants: all glossing-over of fine distinctions in this post was 100% intentional.)

zwol
  • 1,268
7

UNIX and Linux are not related to DOS or Windows.

DOS was an outgrowth of the 8-bit CP/M operating system popular in the late 70's/early 80's.

Windows NT (of which XP, Vista, 7 and 8 are based on) was developed new by Microsoft starting in 1993 and borrows a lot of concepts and ideas from VAX VMS. Windows NT was developed to be a "real" modern, preemptive, multi-user, multi-tasking secure operating system.

Windows 3.1, 95, 98, and ME were pretty much Microsoft's idea/execution of multi-tasking (not multi-user, or secure) DOS.

Regarding UNIX, Linux, etc.:

  • UNIX is a kernel/API/operating system that has been around since the 70's.

    • A kernel provides a platform for programs to run, in the case of Unix, it allows multiple programs to run on a single computer and multiple users to access it. A kernel runs no programs on its own, these must be separately developed and provided.

    • An API is a standard way for programs to talk to the kernel. It's part of the kernel.

    • An operating system is a kernel plus common utility programs to manage and administrate the system. Common utility programs for UNIX include basic programs that manage services and logins (init), a shell that allows you enter commands (sh, bash), and basic file management commands such as cp, ls, mv, etc.

  • Linux is a UNIX-like kernel released under the GPL which at first worked on PC hardware, but now works on almost anything with a CPU (if you are allowed to run it).

    • GPL is a license that says anyone that modifies/enhances Linux, and publishes their modifications, is required to make those modifications available to the public and allow others to do the same.

    • Linux implements the UNIX API, so UNIX programs can run generally unmodified if they are recomplied (this is far easier than rewriting them from scratch) - since they use the UNIX API, they don't care if they are really talking to Linux or UNIX or something else, as long as the API does the same thing.

  • Debian is a Linux distribution. It started in 1993 and is among the oldest distributions. Linux distributions generally provide:

    • a Linux kernel,
    • basic utility programs,
    • an installer so you can install Linux on your system,
    • a package manager (plus a format for packages - Debian uses .deb)
    • a repository of packages

      So you can install a distribution, get a basic Linux environment up and running, then call up packages from the distribution's repository, using the package manager, when you need software. It's different from Windows where traditionally software has been distributed on CDs and years go by between versions and updates. Software in repositories is typically updated frequently and the package manager handles downloading and applying any updates.

    • Debian is also strict about releasing only open source software, meaning things that require proprietary software to run, like modern video cards or Wi-Fi chipsets, won't work optimally (or at all) with Debian "out of the box."

    • Debian typically creates new versions slowly and is more interested in stability than new features. This makes Debian a favorite for servers where the hardware is relatively static and software stability is important.

  • Ubuntu is a "fork" of Debian

    • Debian allows others to create distributions based on it, using its package management tools. Doing this is termed "forking."

    • In addition to the specific branding and look of Ubuntu, Ubuntu adds additional Ubuntu-specific repositories containing more and newer software. Ubuntu is more "bleeding-edge" than Debian - it was created to be more friendly and useful from a non-technical or non-UNIX-expert standpoint. It is all about new features and hardware working out of the box.

    • Most software that works on Debian will work on Ubuntu. The other way around can be a bit problematic since Debian's software is typically older. You might run into some base components that need updating to run Ubuntu stuff, but can't be updated because there's no newer version in the Debian repos. You can update these manually, but then that might require other components to be updated, etc.

    • Should note that Debian is a lot friendlier and aware of modern hardware these days than before.

terdon
  • 54,564
LawrenceC
  • 75,182
6

Unix = a commercial operating system specification

Linux = a free Unix clone (only the kernel)

Debian = a Linux distribution (Linux + other stuff)

Ubuntu = Debian redistributed (Debian made more end user friendly)

4

"Unix" is a trademark for an operating system that was inspired by the 1960s-vintage operating system named "Multics"; "Unix" was a wordplay meant to suggest that it was like Multics, but not as complicated. (Personal note: In the late 1980s, I worked on a commercialized descendant of Multics that was not a type of Unix.) Development of Unix began in 1969 on a DEC PDP-7, and moved to a PDP-11 in 1970. In 1972, it was rewritten in C; to that point it had been written in assembly language. (DEC assembly language was relatively programmer-friendly, but it was still assembly language.) It remained mostly a Bell Labs research project through what was known as "Version 7", which was released in 1979.

Along the way, circa 1977, an alternate branch developed: "BSD" (Berkeley Software Distribution). AT&T licensed a commercial version of its branch, "System III", in 1982, and then "System V" in 1983. Then there was a bunch of legal fighting between AT&T and Berkeley, which hurt both, until the lawsuit was eventually settled.

Partly in response to the battles over System V and BSD, two new projects began: Minix (by Andrew Tanenbaum, which replicated the key features of existing Unix-family kernels, with a micro-kernel design) and the GNU project (which replicated most of the important non-kernel parts of existing Unix), both with entirely new code that avoided the legal troubles between System V and BSD. Standardization efforts tried to resolve the differences between the two main branches; the main result was POSIX.

In 1991 – inspired by Minix, older Unix branches, and the absence of progress on a GNU kernel – Linus Torvalds created Linux. It was also all new code, and returned to the old-Unix type of kernel rather than the Minix-type micro-kernel.

In 1997, Apple took over the BSD-based Nextstep, and eventually developed it into a new Mac operating system, and adapted it to other Apple devices.

Linux exists in a variety of distributions, which are packages that include a Linux kernel and assorted utilities. Debian was one distribution of Linux, and it has branched into a family of distributions. Ubuntu is a distribution that is part of the Debian family, and it has in turn branched into a family of distributions.


Windows and DOS have a very different history. Circa 1963, DEC built the PDP-6, which had an operating system named Monitor. When they built the PDP-10, they named the operating system "TOPS-10". Gary Kildall wrote an operating system for Intel 8080-family computers and named it "CP/M"; it was inspired by TOPS-10. CP/M inspired "86-DOS", written for 8086-family machines by Tim Paterson (using Microsoft's "Standalone Disk BASIC-86" 8-bit FAT filesystem), because CP/M-86, the 8086-family sequel to CP/M, was delayed.

IBM wanted to license CP/M-86 for its first 8088 machine, but there were problems with the deal. IBM had heard of 86-DOS, and asked Microsoft to get it for them. Microsoft licensed it (and later bought it), and licensed it to IBM as "PC-DOS" – and licensed it to others as "MS-DOS".

Some time later, inspired by Visi On (which was in turn inspired by the Xerox Star, better known as the inspiration for Apple's Lisa and Macintosh), Microsoft developed Windows as an add-on to MS-DOS. Early versions were not very successful, but eventually Windows 3.0 was good enough for commercial success. Several later versions (3.1, 3.11, 95, 98, and ME) all ran on DOS, but Microsoft recognized that DOS was holding back progress on Windows. Near the end, much of that branch of Windows was 32-bit, but it still depended on 16-bit DOS.

In an attempt to get around the limitations of DOS, Microsoft worked with IBM on OS/2, which was meant to be "Better DOS than DOS, and better Windows than Windows". Initial versions were not much good, however, and eventually IBM and Microsoft ended joint development. IBM took it over, and ended up making a pretty good OS/2.

Meanwhile, DEC created the VAX series of computers to replace its PDP-11 line, and the VMS operating system to run on it. It shared some history with the TOPS-10 operating system, but they weren't mutually compatible.

Hedging against the possibility of problems with OS/2, Microsoft hired a bunch of top VMS developers (and some micro-kernel researchers) to build a new, 32-bit Windows, from scratch. Deep down, it resembled a micro-kernel adaptation of the best features of VMS. On top, it looked like Windows. The first release of 32-bit Windows was "Windows NT 3.1", followed by Windows NT 3.5, 3.51, and 4.0, then Windows 2000 (without the "NT"), XP (the first 64-bit Windows), Vista, 7, 8, and 8.1.


One interesting thread tying those mostly-unconnected development paths together is DEC. A lot of early Unix history was tied to DEC the PDP-7, PDP-11, and VAX. The DEC PDP-6 and PDP-10 inspired some DOS prehistory. And veterans of DEC's VAX-VMS team built the core of the Windows NT family.

Steve
  • 667
3

I suspect they are all Operating Systems

They are or were all operating systems. Nowadays Unix is a trademark and not an operating system.

that may be based upon one another

In one way or another this is true. The latter group were essentially based on a re-implementation of many ideas that came from Unix. There was no Unix code in Linux (although this was the subject of prolonged litigation which ultimately failed).

similar to how Windows is based on DOS.

I suspect there's not any PC-DOS code in Windows 8, maybe not even for compatibility purposes. There is a clear progression from DOS to Windows 8 though. This is not really the case with Unix and Linux.

Is this the same type of relationship?

Not really, Ownership and development of Unix and Linux are clearly separate.

Linux is an operating system kernel initially developed entirely by Linus Torvalds. It was intended to be a bit like Unix and drew many ideas from Unix. Torvalds did not start with any Unix code as a base.

To make a usable operating system you notably add to a Linux kernel a set of "GNU" tools independently developed by the FSF. You also nowadays add one or more of several competing subsystems (e.g. Gnome or KDE desktop manager). Each of these is called a "distribution".

There are many such distributions, each with their own particular choice of features.

Some distributions are essentially modified forms of other distributions. Typically one distribution is referred to as an upstream distribution. Releases of the downstream distribution depend to a large extent on new releases of the upstream distribution.

Ubuntu is a downstream distribution of Debian. One in which Ubuntu add a lot of value (compared to some other such relationships such as CentOS and RedHat perhaps)

2

Linux per se is just the kernel.
You can compare the Linux kernel with the Windows kernel.
The biggest difference is, Linux uses a pure monolithic kernel where Windows uses a hybrid one.
But they are both kernels, and normal people cannot do stuff with just the kernel, because the kernel is not intended in giving us users access to functionality, but rather solve the tasks necessary for providing our access to functionality.

Debian and Ubuntu are flavors of distributions. Distributions are everything that run ON/AROUND the kernel. And since the kernel cannot do stuff, you'll need some basic applications, to lift Linux to be a fully operating system. So some basic needs a distribution provides is:

  • posibilities to manage libraries and applications,
  • managing startup applications,
  • handling serval protocols,
  • and a GUI

None of these are necessary, but are needed to have the full functionality of a "common" OS like what Windows or MAC OS provides.

Also Debian is one of the forefathers of distributions. It is one distribution that a LOT of distributions depend on/develop from. Like Ubuntu for example.
Now, why do so much people use Ubuntu instead of Debian?
Because Debian comes with as little preinstalled software as possible, but just as much as needed to run a full OS. (Which is this case is without GUI because it is mainly used on Servers). The result is, very stable and slink OS.
Now the "majority" of people would need a GUI, and might like to hear their music on their PC's and laptops, access the internet, and so on. With Debian, that wouldn't work without investing time in installing a GUI, serval drivers and configuring these and that. And here is where Ubuntu comes in. Ubuntu provides all the stability Deiban provides and adds a lot of functionality needed for daily home use.

Windows does not have these dynamics. But still, there is the Windows version everybody uses and the Server versions. Which is just not as diverse as the Linux flavours. But still a big customization for the existing group of customers AND applications realms.

Both, DOS and the Linux terminal are executed on the Kernel. But they can also be "emulated" in the OS. In the OS these emulators do nothing else than passing the commands to the kernel. The Kernel then dumps information which is picked up by the emulators and printed in the terminals.

PS: I intentionally say GUI is needed for a full OS and that Debian is a forefather for the sake of easier understanding. I am aware that these states are technically not fully right. Just a little info for keeping the hardcore nerds from spinning too fast while reading this :)

chue x
  • 268
1

Unix is a class of operating systems all based around the same theory and all similar enough that most people can't tell the difference. The history is kinda convoluted and involves Berkley (BSD) and AT&T (SysV) and a standard called POSIX.

Linux is a type of Unix, although purists will tell you that Linux is just the "kernel" the lowest-level part. The rest of the OS is made of Unix compatible tools from the GNU Software Association and other places. Together, this makes GNU/Unix.

Debian is a general distribution of Linux. Every distribution has its own package management tools, set of default packages that are pre-installed, and may differ in what services are pre-installed and even what configuration files and such are used.

Ubuntu is based on Debian. They take the latest stable Debian and add their own Desktop apps, software management tools and other things to make it unique. There are many other distributions of Linux. Most are either based on Debian or based on Redhat, although there are also Slackware and Gentoo based systems. Each of these 4 bases are built upon by the other distributions. For example, I'm running Elementary OS right now, which is based on Ubuntu which is based on Debian which is a version of Linux which is a flavor of Unix. Got it?

Mac OS/X is similar to Unix in that it uses a different kernel (Mach) that is also Unix compatible with a set of software packages on top of that to make it compatible (mostly) with BSD-flavors of Unix. A lot of software is easy to port from Linux to Mac because of Mac's BSD compatibility. However, they change the upper layers of the OS with a GUI based on display PDF and other additions. The whole thing was originally created as NeXT Step and Apple bought it and gave it a facelift. Its in the Unix family.

Android uses a Linux kernel, but the rest of the OS is of their own design, so while the lowest levels of the OS are based on Unix, the rest is not, and its not generally considered to be a Unix flavor, although some consider it a Linux flavor. Confused yet? Android doesn't conform to the POSIX standards.

DOS/Windows is totally different. MS-DOS was originally a port of CP/M from the 8080 to the 8086 (the 8080 is an 8-bit CPU and a .COM file is an 8-bit executable for CP/M). Microsoft didn't write it, they bought it then licensed it to IBM and its competitors. Windows started out as the old Apple API, more or less stolen legally, which is why it uses a Pascal calling convention. Windows 95 and Windows Me and a few others still used DOS internally for some things (there were lawsuits about this). Newer versions of Windows are based on the Win32 API which was co-written by IBM for OS/2. Microsoft broke off from the OS/2 deal and took the code with them. The Windows NT kernel is normally used for running the Win32 API which doesn't use DOS at all, and Microsoft actually borrowed some ideas from Unix .. in fact a couple Unix copyrights even show up when you boot NT, but its still FAR from Unix compatible.

0
  • UNIX - A flavor for Power PC as oppose to 'Windows'.
  • Linux - Sub-set of Unix flavor - an OS devised under Free Software Foundation and it is "Free"
  • Debian - A foundation which devised Linux - also invited associates to come under the umbrella of Free Software Foundation and contribute for everything that can make complete Linux with many short of tools and utilities and many many application which can be installed on said system, including a package manager to support installation and configuration of all such application.
  • Ubuntu - an extracted version of Debian to suite/fit to Desktop environment in the format of 'Default installation'. Further it is dressed up for desktop themes and utilities.
slhck
  • 235,242
-1

UNIX was an OS created in the 60s and 70s. Computers were expensive, and UNIX was expensive. That was not a problem. Only big companies, universities and governments had computers back then, and they had money.

It was so expensive that Linus Torvalds created an alternative: Linux, which stands for Linux Is Not UniX. He wanted it to be open and free. UNIX was copyrighted, so he rewrote all necessary code (with many helping hands), and required all code to be free, using a special license. As this was a lot cheaper, many people started using it. It was cheaper than UNIX, soon had more users, was used on more servers. As it was cheaper and faster than Windows, it was more popular for cheap webservers as well.

There are two main distributions: Debian/Ubuntu and Redhat/Centos. Besides that there are some other distributions, but these have the main marketshare.

Debian is mainly used as server OS.

Ubuntu was created on top of that, but then with normal users in mind - those that don't know how to use a terminal, those who want something that simply works.

Redhat and Centos both are server systems, like Debian. They both have desktop versions (and debian as well), but not as user friendly as Ubuntu, which has a server system as well, which is becoming more and more popular. Redhat is the OS of choice for big companies, because they offer support contracts - expensive but for some people not a problem.

SPRBRN
  • 8,149