Mach au centre du futur Mac

Mobilité

MacOS X est très joli en apparence ! Face à vous, quand vous l’utilisez, l’interface Aqua cache en fait une pièce maîtresse, l’Unix de l’université de Berkeley. Mais en dessous se cache un système très léger : Mach, un coeur logiciel spécialisé dans le multiprocessing et les environnements distribués.

Si MacOS X est annoncé comme une (r)évolution par les développeurs, les éditeurs, les fans, les concurrents et les responsables d’Apple, ce n’est pas pour ses beaux yeux ! En tout cas pas seulement ! Déshabillez MacOS X et vous trouvez le propulseur de toute cette technologie : un micronoyau issu d’un système d’exploitation des années 70, Mach.

Une brique de base pour systèmes d’exploitation

Mach est à lui seul un système d’exploitation. Il est un développement de RIG (Rochester Intelligent Gateway), un système d’exploitation conçu de manière modulaire pour un mini-ordinateur de 1975, l’Eclipse de Data General (presque 1 million de francs pour le modèle d’entrée de gamme à l’époque). Le concept de base de ce système est de fonctionner sur une série de processus par le biais d’un protocole de messagerie. Futé, car cela signifie que le système peut tourner en s’appuyant sur un réseau ou sur un groupe de processeurs. Ce système d’exploitation, dont le développement s’est poursuivi à l’université de Carnegie Mellon, a été renommé Mach en 1984. Le projet que Richard Rashid, un ex-développeur de RIG, a alors poursuivi pour l’université a été de développer une brique de base sur laquelle d’autres systèmes d’exploitation pourraient être construits.

Les services basiques de Mach sont donc simples, ce qui fait sa grande force et explique qu’il soit utilisé par MkLinux, BSD, NextStep, Openstep et Rhapsody. Mach peut même se permettre de faire tourner plusieurs systèmes d’exploitation en même temps, car ceux-ci ne sont en fait que des tâches à exécuter sans se questionner. Les services de base sont peu nombreux : gestion de la mémoire, gestion des processus, communications et entrées/sorties. C’est tout ! Et c’est bien assez ! En fait, ces quatre services ne permettent pas de faire un système d’exploitation tel qu’on l’entend, avec son architecture de fichiers et son interface graphique. C’est donc le rôle du système d’exploitation construit sur Mach, d’où BSD, l’Unix qui recouvre MacOS X. Ce fonctionnement n’a pas été pensé au hasard. En réduisant le noyau de base, on réduit le nombre d’erreurs possibles. La maintenance s’en trouve donc plus aisée. D’autre part, en fonctionnant sur Mach, on réduit également la dépendance de l’utilisateur au matériel qu’il utilise. Car enfin, l’Unix qui est émulé sur Mach ne s’accroche qu’aux quatre services de ce micronoyau !

Un noyau qui permet d’émuler n’importe quel système

De plus, il suffit de porter le noyau sur une autre architecture pour porter tout l’OS ! Arrêtez d’ouvrir des yeux ronds : on vous dit que le système d’exploitation sur lequel vous travaillez n’est qu’une émulation ! Idem pour MacOS 9 (originellement appelée Blue Box). Et on pourrait bien voir fleurir des émulations de Windows, d’Atari 520 ST, de ZX Spectrum ou de console Sega ! Bon, techniquement, avec la dernière évolution de Mach, l’Unix et le noyau sont un peu plus intimement liés. Mais l’émulation au mieux et le portage sur une autre architecture au pire, sont réalisables? Suivez mon regard… vers le Pentium !

Pour en savoir plus :

Le site MacOS X d’Apple