Est-ce que macOS UNIX? (Et qu’est ce que ca veut dire?)



La question se pose : macOS est-il un système UNIX, de type Unix, ou tout simplement Unix ? Nous allons éclaircir ce débat persistant en expliquant au passage des normes comme POSIX et la spécification SUS.

macOS : Une filiation UNIX ou non ?

Cette interrogation soulève de multiples aspects. Quelles sont les racines de macOS ? Quelle part de cet héritage est encore visible dans macOS actuel, et quelle est son importance ? Avant de pouvoir statuer sur la nature UNIX, Unix ou type Unix d’un système, il est crucial de bien définir ces termes. Qui décide si un système est Unix ou UNIX, et quels critères sont utilisés pour cela ?

Commençons par le commencement.

Unix est né il y a un demi-siècle chez Bell Labs, un centre de recherche et développement appartenant à AT&T. En 1973, la version 4 d’Unix est réécrite en langage C, ce qui a grandement amélioré sa portabilité et facilité son adaptation à diverses plateformes matérielles. La même année, Ken Thompson et Dennis Ritchie, deux figures clés de l’architecture d’Unix, ont présenté un article lors d’une conférence sur les systèmes d’exploitation. Suite à cette présentation, les demandes de copies du système d’exploitation ont afflué.

En raison d’un décret de consentement datant de 1956, AT&T était contraint de se limiter à la fourniture de services de communication. Unix n’était pas considéré comme une source de profit pour l’entreprise. AT&T a alors pris une décision inédite pour l’époque : distribuer Unix en tant que code source, sous une licence flexible. Les frais modestes facturés couvraient les coûts d’expédition et d’emballage, ainsi qu’une redevance « raisonnable ».

La prolifération d’Unix

Unix était fourni « tel quel », sans support. En conséquence, une communauté s’est formée pour aider les utilisateurs, corriger et étendre le système. Ainsi, il était possible d’obtenir le code source, de le modifier et de bénéficier de l’aide de la communauté. Cette démarche n’est pas sans rappeler des approches actuelles. Diverses versions d’Unix ont commencé à émerger, adaptées aux besoins de chaque organisation.

Bob Fabry, professeur d’informatique à l’UC Berkeley, a participé au comité de programme du Symposium sur les principes des systèmes d’exploitation de 1973. Il a assisté à la présentation de Thompson et Ritchie, intitulée « The UNIX Time-Sharing System ».

Fabry a demandé une copie du système d’exploitation. En 1974, Unix a été installé sur un PDP/11 au sein du Computer Sciences Research Group (CSRG) de l’UC Berkeley. Fait notable, Ken Thompson y a passé une année, contribuant à l’émergence de la propre version d’Unix de l’université. Les modifications et ajouts de l’UC Berkeley ont été distribués et sont devenus la « Berkeley Software Distribution » (BSD). À terme, ces distributions ont évolué pour former des systèmes Unix complets, toujours connus sous le nom de BSD. Des numéros de version, comme 4.2BSD, identifiaient les différentes éditions.

En 1984, AT&T a été libérée des contraintes du décret de 1956 et a pu commercialiser officiellement son système d’exploitation. Il intégrait du code BSD, tel que TCP/IP, vi et le shell C, csh. Malgré cette collaboration et ces échanges, des problèmes de licence ont subsisté. BSD contenait du code AT&T, qui n’était pas open source, tandis que les éléments BSD l’étaient.

Une version de BSD sans code AT&T a été développée pour contourner ces problèmes. Cependant, après suppression du code AT&T, environ 20 % du noyau était manquant. William Jolitz a écrit les parties manquantes, et cette version d’Unix a été publiée sous le nom de 386BSD. Le projet 386BSD a stagné, mais en 1993, sa base de code source a donné naissance aux projets NetBSD et FreeBSD.

Ceci nous apporte un élément essentiel du puzzle : FreeBSD.

L’étape suivante

Après son départ d’Apple, Inc. en 1985, Steve Jobs a fondé la société NeXT, Inc.. Afin de fournir un système d’exploitation pour sa gamme de postes de travail, NeXT a développé NeXTSTEP. Ce dernier utilisait BSD comme base de code, mais introduisait un noyau complètement différent.

NeXT a employé une version modifiée du micro-noyau Mach et 4.3 BSD pour former NeXTSTEP, qui est la deuxième pièce du puzzle. Mach a été développé à l’université Carnegie Mellon pour faciliter la recherche sur l’informatique distribuée et parallèle. L’équipe de recherche a utilisé BSD comme système d’exploitation et a remplacé le noyau au lieu de créer un système d’exploitation de toutes pièces.

XNU

En 1996, Apple, Inc. a acquis NeXT, Inc. et, par conséquent, NeXTSTEP. Apple a commencé à développer le système d’exploitation qui allait devenir macOS via Mac OS X. Le noyau Mach a été mis à niveau et remplacé par une version plus avancée développée et utilisée par l’Open Software Foundation dans le système d’exploitation OSF/1. Apple a également mis à jour les composants BSD avec des versions améliorées de la distribution FreeBSD.

Apple a réintroduit des éléments du noyau BSD dans le noyau Mach, et a développé un noyau hybride qui combine les caractéristiques des architectures monolithique et micro-noyau.

Le I/O Kit, développé par Apple à partir du DriverKit de NeXTSTEP, a également été inclus. Cela permettait d’ajouter des pilotes à un noyau sans avoir à le modifier à chaque fois.

XNU est la troisième pièce du puzzle.

Les normes POSIX et SUS

En 1996, deux organismes de normalisation – X/Open et l’Open Software Foundation – ont fusionné pour créer The Open Group.

The Open Group est l’organisme de certification.