L'UNIX original a été créé chez AT&T. Ils ont créé un système d'exploitation pour le traitement de texte, mais n'ont pas pu le vendre en raison de certaines restrictions. Comme ils ne pouvaient pas le vendre, ils ont été quelque peu généreux en permettant aux universités d'accéder aux bandes sources. Plusieurs universités ont apporté des modifications, la plus célèbre étant l'Université de Californie à Berkeley (UCB), qui a publié des modifications sous le nom de Berkeley Software Distribution, ou BSD. La variante BSD d'UNIX a apporté plusieurs ajouts importants à ce que l'on appelle UNIX, notamment le modèle de mémoire virtuelle, les sockets BSD (pensez à TCP/IP), vi et CSH - le premier Shell conçu pour une utilisation interactive.
L'UNIX BSD avait commencé par des correctifs au code de l'UNIX AT&T. Les gens de Berkeley ont nettoyé et purgé le code AT&T, et le code source BSD libre de droits AT&T a finalement été publié. Cela a donné naissance à 386BSD, qui a ensuite donné naissance à NetBSD, FreeBSD, OpenBSD, et FireflyBSD (et d'autres). Finalement, les bases de code AT&T et BSD ont été rassemblées dans "Official UNIX" et cela a été appelé SVR4.
Le noyau Darwin de MacOS X est basé sur des éléments de NetBSD et FreeBSD, ainsi que sur du code Mach. On peut dire qu'il s'agit d'un UNIX, dont le code est issu de l'UC Berkeley jusqu'à l'AT&T original.
Mais que signifie UNIX ? Est-ce une lignée qui remonte à AT&T ? Si c'est le cas, BSD est concerné, tout comme Solaris et bien d'autres. S'agit-il d'une API sur laquelle vous pouvez exécuter du code UNIX ? Dans ce cas, ils remplissent les conditions requises, tout comme Linux qui est une écriture à partir de zéro du corpus d'API UNIX. Pour la plupart des codes, Cygwin peut être considéré comme une cible pour le code UNIX, c'est donc aussi un UNIX, même s'il fonctionne au-dessus du noyau Windows et que le "noyau" UNIX est une DLL dans l'espace utilisateur. Est-ce un badge que vous pouvez coller sur votre boîte ? Si c'est le cas, Apple a finalement payé pour l'avoir dans Leopard. Hmm, mais Microsoft a payé pour ce badge pour le sous-système POSIX de Windows NT4. Oui, Windows NT a été badgé "UNIX" avant Solaris. Pourtant, NetBSD qui est un descendant direct des sources UNIX, n'a jamais payé pour ce badge, et ne s'appelle pas UNIX .
En ce qui concerne bash, je n'utiliserais pas la chose GNU comme un standard pour savoir si Mac OS X est UNIX. bash est commun sur les plateformes UNIX (et IIRC avoir bash est l'une des exigences pour SVR4 UNIX) mais peut être porté sur les plateformes non-UNIX également. Le "GNU n'est pas UNIX" concerne plutôt le GNU Hurd, qui était censé être un concurrent d'UNIX dans le domaine des systèmes d'exploitation. Le Hurd était censé être un micro-noyau capable de faire des choses merveilleuses et d'exécuter du code UNIX. Le noyau Hurd n'a pas fait grand-chose, mais l'objectif de Hurd a donné naissance à une énorme quantité de logiciels incroyablement utiles qui fonctionnent sous UNIX, notamment bash, emacs, gcc, et bien d'autres.