[ELI5] Is Linux really ONE operating system?


Linux is often listed as parallel to OSes like macOS. But afaik Mac is also based off of Unix, so can I say Mac is a distro of unix? And then Mac would become parallel to linux distros like ubuntu and debian? Is a distro an OS of their own?

In: 1

Linux is like people. We are all humans, but each is uniquely special and awesome.

MacOS and Windows are like corn and apples. There are a few different strains that are closely controlled by tech mega-companies.

So, if we want to get technical, Linux is just the OS *kernel.* You can’t really do anything with it unless you add some other software (traditionally, this is the GNU userspace and compiler stuff, but there are some other options now).

The line between a distribution and a fully different OS is a thin one, IMO. Most distros are similar enough that they may as well be considered the same OS with different bells and or whistles (my opinion). E.g. most common distributions ship the GNU C/C++/Fortran compiler and libraries and build all their packages with them. While the exact version thereof and compiler flags used will differ, the resultant software is theoretically compatible with any similar distro with the right version of GLibC and the needed dependencies. For example, I can easily convert Debian/Ubuntu packages to Arch packages and install them on my system without much fuss.

Things get more hairy when you get into distros that use LLVM/CLANG and/or MUSL libC for their packages.

As for the MacOS x BSD thing, I wouldn’t call it a full on UNIX distribution. It uses *some* BSD derived code under the hood, but it’s got enough proprietary custom stuff in there to be considered it’s own animal within the UNIX phylum.

In the beginning (and outside of niche specialized proprietary mainframe OSs like S360 for IBM series) there was Unix. This core UNIX, like linux started as a single OS but was branched by various vendors into particular flavours: HP-UX for HP minicomputers and CAD stations, BSD by USC Berkley, Xenix from Microsoft.

The Linux kernel was started as a free, open-source but somewhat compatible-ish version of UNIX. And then various commercial vendors have produced various _distros_. But if you understand one Linux distro, you can work happily in any of them. Perhaps over simplifying somewhat, a program written for one distro should work on any of them; maybe not a packaged binary, but it should recompile from source on any distro.. subject to say similar _kernel_ branches. The only things that change between distros are pre-packaged libraries and reskinnable (or interchangeable and pre-configured) user facing apps – like the desktop environment, or the utility for system configuration; default apps. But behind the scenes the guts are all very similar.

BSD from USC Berkley was morphed by some vendors into SunOS (now SOlaris) for Sun servers and workstations, and into the NEXT OS.. which SteveJobs snarfed to form the basis of what would become the current MacOS and IOS.

You’d be correct in saying MacOS (or its kernel) is a descendent of UNIX, but I wouldn’t call it a distro.

How you group the operating system depends on the situation and it can be different. If you for example what to look at what OS people use on the desktop then grouping all Linux disturbing together makes sense because all are quite similar but differ in ways from Windows and Mac OS .

Mac OS might have a POSIX base on a UNIX/UNIX-like kernel but what is on top is a proprietary layer. So programs developed for Mac OS cant be installed on other POSIX-based OS.

If you look at Linux distros in general you can run the same software on all of them.

The grouping we human make are there because they have a practical purpose.

You could group OS based on their origins and have all that have their origin in something UNIX-like are UNIX. The problem is now that Apple us the XNU kernel in Mac OS but alos in iPhones, iPads, Apple Watch etc, Android use a modified LINUX kernel. So now you primary have two OS for a large amount of consumer produce UNIX and Windows. But this would be a quite impartial grouping because from a user point of view it is quite irrelevant that iOS and Android have a origin in UNIX, you can install the same apps on them and the OS feature are different.

So you can use any definition of OS you like the question to ask is when you do that what is the purpose and what are you trying to go get across. You should pick a definition that is appropriate for the situation.

If you teach a course in operating system design and what to show the how operating system are created and developed over the huge influence of UNIX then do it one way. If you on the other hand what to introduce people to a computer or to show that is commonly used on desktops another definition is appropriate.

Yes and No

Think of Linux like Ice Cream. There’s lots of different flavors of Ice Cream, but despite looking and tasting different they all have stuff in common.

Linux is like that, all the different Distros are unique in their own way, are maintained by different people, but they all have a number of things in common.

So it’s both fair to say they are all flavors of the same OS, but they are all different at the same time. It’s all about how you look at it.