What Makes It a Linux OS?
-
We talk about Linux all of the time and I'm having a conversation about it right now, but one of the things that is tricky for newcomers to the Linux world is "What is Linux" and "What exactly is a distro" and then "What is the relationship between the two and what is the commonality?"
So, here we go.
Linux is a kernel. That is all. Linux is a kernel that is roughly POSIX compatible making it a UNIX kernel. Some people dispute this but the creator of UNIX called Linux the "most UNIX implementation of UNIX" so it is hard to dispute. Linux is a member of the UNIX family, even if they have not paid for the privilege of advertising themselves as such. In the Windows world the kernel is the "NT Kernel" and is a piece of the operating system that you never deal with directly but influences everything that you do. It is the kernel version that we use to determine when Windows goes to a new, full release. (Windows 10 is kernel NT 6.4.) The Linux Foundation oversees the making of the Linux kernel.
A distro is an operating system built on the Linux kernel. A kernel is useless on its own and needs and operating system around it to do something. Just like the NT Kernel has Windows, the Linux kernel gets an OS too. Each OS built on Linux is called a "Linux Distribution or Distro." Each distro represents a full operating system. Examples of Linux based operating systems (distros) would include: Linux Mint, Ubuntu, Fedora, RHEL and CentOS, Suse, OpenSuse, Arch, Gentoo, Debian, etc.
What is the commonality between Linux systems? This is the hard bit. The hard answer is "C APIs for talking to the kernel" and nothing else. That feature alone is what technically makes one Linux distro related to another. Everything else, including the command line (or even the existence of a command line) is an artifact of the distro, not of Linux. Linux itself has no interface other than the C system calls that end users would never see.
What are the PRACTICAL commonalities? In the real world, all major Linux distos and nearly all minor ones agree either intentionally or just practically on a massive number of things that will unify them. The biggest of these is the near universal use of a BASH or BASH compatible command line shell to provide a command line interface. Almost as big is the use of the X windowing system for graphics. Most support a common set of graphical interfaces, but there is no standard. Many tools like top are nearly universal, but this is purely convention. Linux standards tend to be by "distro family" like the big RPM and DEB families share software packaging standards within their families and tend to be very similar.
-
So what does it mean when someone says "I know Linux?" Well... not much, actually. Programmers who work in C and write to the Linux API are the only people for whom this is actually a valuable statement.
In the IT world, people say this either because they don't know Linux and have no idea what they are saying or, more likely, they say it to mean that they know a common Linux distro (generally RHEL, Ubuntu, Debian or Suse) with some amount of BASH proficiency. What they general know is a distro, not Linux, plus BASH. But there are distros out there that are so different than no amount of standard distro experience would service any purpose towards supporting. Even Android, one of the most popular Linux families, is so far removed from traditional Linux as to be almost unrecognizable and many networking appliances are even more distantly removed.
Using VyOS is a good example of where the shell is not BASH-like and resembles Cisco's IOS instead. But this does not make VyOS any less Linux.
-
A big confusion that arises from people associating "commonalities" with Linux instead of realizing that they are only commonalities is that things like BASH get associated inappropriately with Linux when it is nothing but an interface. Systems with no relationship to Linux such as Mac OSX, Solaris, HP-UX, AIX and even Windows can have BASH as well. There is nothing that makes Linux and BASH go together other than the general force of the market. Many Linux systems are built with CSH, ZSH, TCSH, KSH or other options as well.
This leads to greater confusion if people confuse the BASH shell with Linux and leads to things like the often quoted, and completely wrong, conclusion that VMware ESXi is built on Linux. There is no such relationship. In fact, ESXi does not even use BASH. It has a light weight BASH-like shell interface that talks to the VMkernel. Neither Linux nor BASH are present anywhere in the system.
-
@scottalanmiller said:
A distro is an operating system built on the Linux kernel. A kernel is useless on its own and needs and operating system around it to do something. Just like the NT Kernel has Windows, the Linux kernel gets an OS too. Each OS built on Linux is called a "Linux Distribution or Distro." Each distro represents a full operating system. Examples of Linux based operating systems (distros) would include: Linux Mint, Ubuntu, Fedora, RHEL and CentOS, Suse, OpenSuse, Arch, Gentoo, Debian, etc.
Not sure if I completely agree with this. I would define a distro as an OS with a custom configuration and additional software installed. These are the things that make them unique.
They all have the same basic OS components. The kernel, some sort of interface and hardware support. They may be different versions, but same components.
The different shell's (BASH, CSH, etc), GUI's (Gnome, KDE, etc) service managers (systemd, SYS-V, etc), package manager (yum, apt-get, etc) and may other things are what makes each distro different from the rest.
But then, this is just my opinion.
-
@ajurek said:
Not sure if I completely agree with this. I would define a distro as an OS with a custom configuration and additional software installed. These are the things that make them unique.
The only issue is that there is no OS on which to build the distros. Each distro builds its own OS from the ground up, there is no common starting point.
The most basic distros like Debian, Slackware, Suse and Fedora build from nothing to full OS / distro. Then, it is true, other distros like Ubuntu and RHEL build on top of these or from these or whatever. But every OS build on Linux is a distro. So while it is potentially extra stuff that makes them different, there is no common OS on which they are built.
-
@scottalanmiller said:
@ajurek said:
Not sure if I completely agree with this. I would define a distro as an OS with a custom configuration and additional software installed. These are the things that make them unique.
The only issue is that there is no OS on which to build the distros. Each distro builds its own OS from the ground up, there is no common starting point.
The most basic distros like Debian, Slackware, Suse and Fedora build from nothing to full OS / distro. Then, it is true, other distros like Ubuntu and RHEL build on top of these or from these or whatever. But every OS build on Linux is a distro. So while it is potentially extra stuff that makes them different, there is no common OS on which they are built.
I agree that the "parent" distro's (Debian, Slackware & RedHat) should be classified as full OS's. They started the "original base". But then others branched them off into different look/feel/software variations that I call distros. They are modified version of the "parents", so the "parents" would be the OS that they are all based off of. Wouldn't they?
-
@ajurek said:
@scottalanmiller said:
@ajurek said:
Not sure if I completely agree with this. I would define a distro as an OS with a custom configuration and additional software installed. These are the things that make them unique.
The only issue is that there is no OS on which to build the distros. Each distro builds its own OS from the ground up, there is no common starting point.
The most basic distros like Debian, Slackware, Suse and Fedora build from nothing to full OS / distro. Then, it is true, other distros like Ubuntu and RHEL build on top of these or from these or whatever. But every OS build on Linux is a distro. So while it is potentially extra stuff that makes them different, there is no common OS on which they are built.
I agree that the "parent" distro's (Debian, Slackware & RedHat) should be classified as full OS's. They started the "original base". But then others branched them off into different look/feel/software variations that I call distros. They are modified version of the "parents", so the "parents" would be the OS that they are all based off of. Wouldn't they?
They are all OSes. And all distros. That's where it gets complicated. The children are as much OSes as the parents. And all are distros of Linux. None of them are considered to be one but not the other.
-
I would classify anything using the Linux Kernel as Linux OS.
However There have been reports of ESXi Stealing portions of this and officially it supposedly not Linux but there own creation.
-
@Jason said:
However There have been reports of ESXi Stealing portions of this and officially it supposedly not Linux but there own creation.
Right now it is purely rumous. They've been taken to court but as of yet, no proof of anything being stolen. If something was stolen, the accusation is only that it is a little bit of code, not the kernel itself. ESXi is definitely not built on Linux. Is it possible that they stole code? Of course, definitely possible but very unlikely given the risk that would entail.
-
@scottalanmiller said:
(Windows 10 is kernel NT 6.4.)
Windows 10 is kernel version 10. They changed it after one of the major consumer previews were released.