ANNÉES 2000

Apple Mac OS X

Apple traversait une période difficile dans les années 1990. Son système d'exploitation Mac OS, né en 1984 avec le premier Macintosh, accusait un retard technique face à la concurrence. Conçu à l'origine pour un ordinateur de 128 Ko de mémoire, il ignorait le multitâche préemptif et la protection mémoire. Le MultiFinder, arrivé en 1988, n'apportait qu'une forme rudimentaire de multitâche coopératif. L'architecture vieillissait mal. Vers le milieu des années 1990, Apple s'appuyait sur un code vieux de dix ans, initialement écrit pour les processeurs Motorola 68000, tant bien que mal adapté aux PowerPC. Une partie du noyau tournait même dans un émulateur 68K, ce qui n'arrangeait rien aux performances.

Apple lance alors en 1994 le projet Copland, avec l'ambition de créer un système moderne qui garderait l'interface et la compatibilité Mac OS. La société multiplie les présentations aux développeurs, publie des documentations, mais Copland ne parvient jamais à une stabilité acceptable. Le projet s'arrête en 1996. Apple se retrouve dans l'urgence.

La solution vient d'ailleurs, par le rachat de NeXT, la société que Steve Jobs avait fondée après son départ d'Apple en 1985. NeXT avait bâti NEXTSTEP, un système remarquable basé sur le micronoyau Mach de l'université Carnegie Mellon. NEXTSTEP mariait ce noyau moderne avec une couche BSD et proposait dès 1989 le multitâche préemptif, la protection mémoire, le support de plusieurs architectures processeur et un environnement de développement orienté objet en Objective-C.

Transformer NEXTSTEP en Mac OS X demande un travail considérable. Apple actualise le code Mach 2.5 vers la version 3.0, met à jour la partie BSD avec du code de 4.4BSD et FreeBSD, ajoute le support des systèmes de fichiers HFS et des protocoles réseau Apple. L'équipe développe I/O Kit, un nouveau système de pilotes qui remplace l'ancien DriverKit. Cette couche, écrite dans un sous-ensemble du C++, autorise une approche orientée objet pour gérer les périphériques.

L'architecture de Mac OS X repose sur la modularité. Le noyau XNU (X is not UNIX) combine trois composants : Mach gère les ressources système, BSD assure la compatibilité UNIX et les services réseau, I/O Kit s'occupe des pilotes. Cette organisation facilite la maintenance et les évolutions. Les pilotes se chargent dynamiquement sous forme de KEXTs (Kernel Extensions), des modules qu'on ajoute sans recompiler le noyau.

Pour la transition des applications, Mac OS X propose plusieurs environnements. Cocoa, héritier des bibliothèques OpenStep de NeXT pour créer des applications natives. Carbon offre une version modernisée des API Mac OS classiques et facilite le portage des logiciels existants. Un environnement Classic exécute les anciennes applications Mac OS sans modification.

Les innovations vont au-delà du noyau. Le système introduit Mach-O, un format binaire universel capable de contenir du code pour différentes architectures dans un fichier. Cette caractéristique simplifie la distribution des logiciels et prépare les transitions matérielles futures. Le démarrage s'appuie sur OpenFirmware pour les PowerPC, puis sur EFI pour les processeurs Intel, apportant des capacités étendues par rapport au BIOS traditionnel.

La gestion mémoire témoigne du soin apporté aux performances. Sur les systèmes x86, Mac OS X adopte une approche 4/4 où l'espace utilisateur et le noyau ne sont pas mappés simultanément, contrairement à la répartition classique 3/1 ou 2/2 Go. Cette conception tire mieux parti de la mémoire disponible.

Le passage aux processeurs Intel en 2005-2006 démontre la souplesse de l'architecture. La technologie Rosetta, basée sur QuickTransit de Transitive, exécute les applications PowerPC sur les nouveaux processeurs x86 par recompilation dynamique. Le noyau 32 bits continue de fonctionner sur les machines 64 bits en mode de compatibilité, préservant la compatibilité avec les extensions existantes tout en donnant accès aux fonctionnalités 64 bits.

L'influence de Mac OS X dépasse les ordinateurs de bureau. Le système sert de base à iOS pour l'iPhone et l'iPod touch, en adaptant le noyau XNU et certains composants à l'architecture ARM. Cette réutilisation du code donne à Apple une cohérence technologique entre ses plateformes.

La publication du code source de Darwin, le cœur de Mac OS X, sous licence Apple Public Source License en 1999 marque un tournant dans la stratégie d'Apple. Cette ouverture autorise les développeurs à étudier l'implémentation du système et à y contribuer. Des projets comme PureDarwin montrent qu'on peut créer des systèmes dérivés.

Mac OS X réalise une synthèse entre l'héritage UNIX, les innovations de NeXT et le savoir-faire d'Apple en matière d'interfaces. Le système a permis à Apple de moderniser sa plateforme en préservant la compatibilité avec les applications existantes. Cette base technique solide a soutenu l'expansion d'Apple vers de nouveaux marchés et continue d'évoluer avec les besoins des utilisateurs et les avancées technologiques.