48

What is the very fundamental difference between Unix, Linux, BSD and GNU? Unix was the earliest OS, so the term 'Unix like' is understandable, since they have kernel, file system structure, most of the commands, users etc are same as Unix. Still why are they different? What made them set apart? Is it the kernel?

https://www.gnu.org/home.en.html

GNU is an operating system that is free software—that is, it respects users' freedom.

1

2 Answers 2

60

That is a difficult question to answer.

First "Unix Like" or "*nix" usually means POSIX. All the systems you listed are POSIX systems. POSIX is a set of standards to implement.

Now for the harder questions.

GNU isn't really an OS. It's more of a set of rules or philosophies that govern free software, that at the same time gave birth to a bunch of tools while trying to create an OS. So GNU tools are basically open versions of tools that already existed but were redone to conform to principles of open software. GNU/Linux is a mesh of those tools and the Linux kernel to form a complete OS, but there are other "GNU"s. GNU/Hurd for example.

Unix and BSD are "older" implementations of POSIX that are various levels of "closed source". Unix is usually totally closed source, but there are as many flavors of Unix as there are Linux if not more. BSD is not usually considered "open" by some people but in truth it is a lot more open then anything else that existed. It's licensing also allowed for commercial use with far fewer restrictions as the more "open" licenses allowed.

Linux is the new comer. Strictly speaking it's "just a kernel", however, in general it's thought of as a full OS when combined with GNU Tools and a bunch of other things.

The main governing difference is ideals. Unix, Linux, and BSD have different ideals that they implement. They are all POSIX, and are all basically interchangeable. They do solve some of the same problems in different ways. So other than ideals and how they choose to implement POSIX standards, there is little difference.

For more info, I suggest you read a brief article on the creation of GNU, OSS, Linux, BSD, and UNIX. They will be slanted towards their individual ideas, but when you read through, you will get a good idea of the differences.

This Unix genealogy diagram clearly shows the history of Unix, BSD, GNU and Linux (from Wikimedia):

Unix genealogy diagram

9
  • note: not everything is POSIX. e.g. see man unimplemented (IIRC, it might be man security) on a GNU/Linux system.
    – strugee
    Dec 11, 2013 at 16:21
  • Strugee is correct. They are not fully compliant, but they are trying to be. Not sure how to work that into the answer though. Unix-Like is also technically different then POSIX but in general when people say Unix-Like they usually mean POSIX.
    – coteyr
    Dec 11, 2013 at 16:33
  • 1
    Some complementary info in this Q&A.
    – user44370
    Dec 11, 2013 at 16:39
  • 1
    I believe GNU was originally intended to be an OS. Dec 11, 2013 at 22:42
  • 1
    This answer contains a lot of miss-understanding of: Free Software, Open Source, commercial, and the BSD licence. Mar 11, 2020 at 22:36
24

Linux is not an OS, it's a kernel. Linux by itself has no 'userland' environment (no apps, no commands, no ...etc...).

If you want to have a complete OS, you have to add an userland to your kernel. Historically, for Linux, it's GNU. All(?) Linux distributions are not 'real Linux' distributions. They are GNU/Linux (GNU + Linux) distributions.

BSD is a 'unix-like' complete OS, with it's own kernel and it's own userland (no linux kernel nor GNU).

GNU/Linux and *BSD family (FreeBSD, OpenBSD and NetBSD) are 'unix-like' OS, they behave like Unix.

Here is a comparison between (GNU)/Linux and *BSD : http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

2
  • your link does not work
    – Anthon
    Dec 11, 2013 at 16:45
  • @Anthon it is working
    – Prvt_Yadav
    Apr 29, 2018 at 5:46

Not the answer you're looking for? Browse other questions tagged .