To trudne pytanie.
Pierwszy „Unix Like” lub „* nix” zwykle oznacza POSIX. Wszystkie wymienione systemy są systemami POSIX. POSIX to zestaw standardów do wdrożenia.
Teraz trudniejsze pytania.
GNU nie jest tak naprawdę systemem operacyjnym. To raczej zbiór zasad lub filozofii rządzących wolnym oprogramowaniem, które jednocześnie zrodziły wiele narzędzi podczas próby stworzenia systemu operacyjnego. Narzędzia GNU są więc w zasadzie otwartymi wersjami narzędzi, które już istniały, ale zostały przerobione, aby były zgodne z zasadami otwartego oprogramowania. GNU / Linux to siatka tych narzędzi i jądra Linuksa, które tworzą kompletny system operacyjny, ale są też inne „GNU”. Na przykład GNU / Hurd.
Unix i BSD to „starsze” implementacje POSIX, które są różnymi poziomami „zamkniętego źródła”. Unix jest zwykle całkowicie zamkniętym źródłem, ale jest tyle smaków Unixa, co Linux, jeśli nie więcej. BSD zwykle nie jest uważane przez niektórych za „otwarte”, ale tak naprawdę jest o wiele bardziej otwarte niż cokolwiek innego, co istnieje. Licencja jest również dozwolona do użytku komercyjnego z dużo mniejszymi ograniczeniami, ponieważ dozwolone są bardziej „otwarte” licencje.
Linux jest nowością. Ściśle mówiąc, jest to „tylko jądro”, jednak ogólnie jest uważane za pełny system operacyjny w połączeniu z GNU Tools i wieloma innymi rzeczami.
Główną różnicą rządzącą są ideały. Unix, Linux i BSD mają różne ideały, które wdrażają. Wszystkie są POSIX i wszystkie są w zasadzie wymienne. Rozwiązują niektóre z tych samych problemów na różne sposoby. Więc poza ideałami i tym, jak decydują się na wdrożenie standardów POSIX, różnica jest niewielka.
Aby uzyskać więcej informacji, sugeruję przeczytanie krótkiego artykułu na temat tworzenia GNU, OSS, Linux, BSD i UNIX. Będą nachyleni w kierunku swoich indywidualnych pomysłów, ale kiedy przeczytasz, dostrzeżesz różnice.
Ten schemat genealogiczny Uniksa wyraźnie pokazuje historię Unixa, BSD, GNU i Linuksa ( z Wikimedia ):