26

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?

closed as too broad by slm, Anthon, Renan, jasonwryan, terdon Dec 11 '13 at 18:12

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

29

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

  • note: not everything is POSIX. e.g. see man unimplemented (IIRC, it might be man security) on a GNU/Linux system. – strugee Dec 11 '13 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 '13 at 16:33
  • 1
    Some complementary info in this Q&A. – user44370 Dec 11 '13 at 16:39
  • no, the Linux kernel developers don't ever intend to be POSIX-compliant. I forget where I read this (I looked in the manpages but couldn't find it) but there are certain syscalls that will never be implemented due to security considerations. – strugee Dec 11 '13 at 17:10
  • I believe GNU was originally intended to be an OS. – Faheem Mitha Dec 11 '13 at 22:42
13

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

  • your link does not work – Anthon Dec 11 '13 at 16:45
  • @Anthon it is working – Prvt_Yadv Apr 29 '18 at 5:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.