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.
> so can I say Mac is a distro of unix?
Yes, I think that’s fair to say. [MacOS is officially a UNIX operating system](https://www.opengroup.org/openbrand/register/brand3678.htm), though it’s worth keeping in mind that what that really means is conformance to a baseline of specifications and that OSes build a *bunch* of stuff on top of that, including literally everything that makes MacOS distinctive.
If operating systems were cars, Linux would be the engine. It’s the part that makes it go.
Most of it is stuff you don’t interact with directly; between it and you are things like pedals, a steering wheel, levers, buttons, etc. And there’s more to a car than just its engine and essential controls. There’s the car’s shape, size, seats, doors, mirrors, lights, horn, entertainment center, dashboard, windows, fuel tank… all of these cars can use the same “Linux engine” and they’d all be “Linux operating systems” because of that. They would all have some shared similarities in features, shape, and handling, but you can still get pretty wild with the overall car design even with your choice of engine locked in.
Consider a distro like Debian. If Debian were a car, it would probably be a simple, nonchalant, no-frills sedan with a manual transmission. A generic workhorse kind of car that can get a person from place to place efficiently and reliably. It only comes with a few bare amenities, like heated seats and a basic radio, but not much else. Customizing it the way the driver wants it is the driver’s job. Lots of people like it for the relatively blank-slate it is.
Now consider a distro like Ubuntu. Unbuntu is based on Debian. That means it’s essentially the same exact “car model”. But just like how in real life, you have lots of pre-customized versions of a car (“trim kits”) to choose from when buying one, you often have lots of pre-customized versions of Linux distros to pick from. In this case, Debian is the base kit that includes only the essentials, while Ubuntu is a loaded out kit that includes a bevy of features that target non-car-enthusiasts or drivers who don’t want to bother fully kitting out their own cars from scratch, like an automatic transmission, full entertainment center, built-in GPS navigation, parking assist, lane assist, a rear spoiler, etc. All things a Debian driver could theoretically install themselves if they wanted, pre-assembled for you so you don’t have to. Some people find this prebuilt kit very attractive, others may be annoyed with the inclusion of features they didn’t want.
Linux is a kernel, rather than an operating system. A kernel is the most basic, central part of an operating system, but it is not an operating system by itself. To make a full operating system, you need a whole bunch of other software. When an operating system is based off of Linux, it is often called a Linux Distribution. The distribution includes not just the Linux kernel, but lots of other software packages that make up a full operating system. Using the term “Linux” as an operating system is a mistake/simplification that people make quite a bit.
Because Linux is freely available to anyone, there are a lot of people/groups who have created their own distributions of Linux. It isn’t like Windows, where there are only a few versions, and they are all created by Microsoft (Windows 10, Windows 11, Windows Server, Windows Embedded, etc…).
Linux is similar to Unix in many ways but it is not Unix. Mac OS X is based off of Mach, which is another Unix-like kernel. Mach is also open source, so it is possible for other people to build another operating system distribution with a very similar kernel to Mac OS X, although I’m not aware of any other modern Mach distributions. Google Android is based off of Linux, so it can be considered a type of Linux Distribution.
Latest Answers