Naas, puisque tu le demandes, je vais faire une retrospective assez rapide. Dans les années 80, l'explosion de la micro apporte la puissance des ordinateurs dix à cent fois plus gros à un nouveau type d'ordinateur utilisable sur un bureau. Dans des universités et les centres de recherche, des projetsfusent . Notamment celui d'un chercheur de l'Université de Rochester qui se nomme Richard Rashid. A cette époque, le système le plus utilisé dans les universités est Unix. Une des variantes sera d'aiileurs développé à l'Université de Berkeley, c'est BSD. Le système Unix bien que très solide avait un gros inconvénient c'est que au fur et à mesure qu'on le peaufinait (ajout du support du réseau, etc), son noyau grossisait et donc pouvait poser des problèmes à la stabilité de l'OS et aux performances. D'où l'idée de 'dégraisser' celui-ci en le rendant plus petit et en y gardant que les fonctionalités dites vitales et en implémentant les autres fonctionalités (gestion de fichiers, etc) sous forme de serveurs. c'est la naissance des micro-noyau. Le projet Accent conduit par Richard Rashid s'inscrivait dans cette mouvance. Mais Rashid changea d'université et emmena son projet à l'université de Carnegie Melon. Là, il revit sa copie et forma une équipe pour continuer les travaux du projet Accent. c'est le projet qui donna naissance au micro-noyau Mach. Avi Tevanian faisait partie de l'équipe.
Pour plus de précisions, je vous invite à lire
cet article
Comme vous le voyez, beaucoup de notions apportées par Mach (ports, thread, gestion de la mémoire virtuelle, support des architectures multi processeurs, etc) ont par la suite été incorporées dans les système Unix et d'autres (Windows NT).
Le gros reproche que l'on fait aux micro-noyaux c'est qu'en implémentant les fonctionalités OS sous forme de serveurs, cela pénalise les performances. d"autant que les échanges entre les serveurs et le micro-noyau se font par l'envoi de messages.
C'est pour cela qu'Apple au lieu d'utiliser Mach sous sa forme micro-noyau avec freeBSD comme serveur apportant les spécificités Unix, a plutôt décidé de créer un noyau simple incluant Mach, BSD, I/O kit pour la gestion des drivers, etc. les échanges à l'intérieur du noyau se faisant par appel direct de procédures. Mécanisme plus performant que l'emploi de messages.
Ce noyau Apple l'a mis en distribution libre sous licence sous le nom de Darwin.
Un noyau tout seul ne fait pas un système d'exploitation. Apple a donc dans un souci de modularité conçu son OS en couches en ajoutant au noyau, des différentes couches dont Aqua constitue la couche la plus haute et Darwin la plus basse.
TOUTES ces couches forment Mac OS X.
Pour info : Rashid bosse chez Microsoft, Avi Tevanian chez Apple (cela vous le saviez).
On peut utiliser Darwin comme noyau et se faire une distrib. Tout comme les distrib linux utilisent le même noyau mais l'OS ainsi constitué en ajoutant des apis différents et une interface (KDE ou autre) a un nom particulier (red hat, Mandrake, etc).
Quand je dis que Mac OS X n'est pas un Unix c'est que son noyau déjà n'est pas un noyau Unix traditionel. Mêm si celui-ci incorpore BSD. Tout le noyau de BSD n'est pas dans Mac OS X. certaines fonctionalités du noyau BSD sont apportées par Mach. Par souci de modernité, vu que FreeBSD évolue plus vite que Mach, certaines des fonctionalités de ce dernier sont dépassées par rapport à celles de FreeBSD. Dans un tel cas, Apple utilise la technique des poupées russes en enveloppant ( on dit wrapper en jargon geek) les fonctionalités de Mach par celles plus modernes et actuelles de freeBSD. c'est de cette façon par exemple que les threads de Mac OS X sont des threads Mach à 'coloration' FreeBSD. La coloration ici étant que ces threads sont Posix. Alors que à l'origine les threads Mach ne le sont pas.