Unix à jamais #1 : A/UX, Mac OS X avant l’heure

Anthony Nelzin-Santos |
Club iGen 👑

Cet article réservé initialement aux membres du Club iGen est exceptionnellement en accès libre à compter d'aujourd'hui. Pour découvrir tous les articles exclusifs du Club iGen et d'autres avantages, abonnez-vous !

Nous sommes en février 1988. Grâce au MultiFinder du Système 5, le Macintosh peut enfin exécuter plusieurs applications en même temps. À l’occasion de la conférence UniForum, Apple présente pourtant un tout nouveau système d’exploitation, baptisé A/UX. La firme de Cupertino frappe un grand coup : A/UX peut répondre aux exigences du gouvernement américain, puisque c’est un système Unix, sans aliéner la clientèle traditionnelle, comme il prend en charge les applications Macintosh. A/UX marque le début d’une relation tumultueuse entre Apple et Unix.

Bienvenue sur A/UX.

Au milieu des années 1980, Apple contrôle 20 % du marché naissant de l’informatique personnelle. L’Apple II a trouvé sa place dans les foyers comme dans les écoles, et le Macintosh séduit les professionnels de la création. La firme de Cupertino n’est pas rassasiée, et veut maintenant conquérir le gouvernement américain, qui achète plus d’ordinateurs qu’aucune autre organisation dans le monde.

Après cinq ans de guerre des systèmes Unix, qui a vu s’affronter les partisans du système original conçu chez AT&T aux tenants de l’approche non-commerciale de BSD, l’Institut des ingénieurs électriciens et électroniciens (IEEE) définit un jeu de normes communes en 1988. Le standard POSIX assure l’interopérabilité des nombreux systèmes Unix, et devient une exigence du cahier des charges de l’Institut national des normes et de la technologie (NIST).

Pour espérer emporter des contrats gouvernementaux, Apple doit concevoir son propre système compatible POSIX. Comme Sun avant elle, elle se tourne vers UniSoft, qui a déjà réalisé plus de 200 implémentations Unix pour une demi-douzaine d’architectures. UniSoft part de la version 2.2 de System V, le système Unix commercial d’AT&T, et lui ajoute quelques extensions issues de BSD 4.2 et 4.3.

A/UX 1.1.

Pour autant, Apple refuse d’abandonner la compatibilité avec les applications Mac. Si la première version1 démarre uniquement en ligne de commande, et ne prend en charge qu’un dixième des applications traditionnelles, la première mise à jour incorpore l’ensemble de l’environnement du Système 6. A/UX, pour Apple Unix, est né.

Pendant quelques temps, Apple propose un Mac IIx équipé d’un disque dur de 80 Mo renfermant A/UX pour 8 152 $, l’équivalent de 15 000 € aujourd’hui. Les propriétaires de Mac II peuvent même acheter un upgrade kit, contenant le disque dur et une unité de gestion de la mémoire (PMMU), pour la coquette somme de 4 879 $. Apple reprend le développement en main pour A/UX 2.0, qui est distribué sur des disquettes.

Le développement d’A/UX 3.0, présenté en novembre 1991, est synchronisé avec celui du Système 7. Le système de fichiers Unix apparait comme un volume dans le Finder, QuickTime fait son apparition, AppleTalk cohabite avec Telnet. Un système A/UX peut être utilisé comme une console Unix textuelle, ou bien avec le serveur graphique X, mais la plupart des utilisateurs préfèrent son troisième mode de fonctionnement.

A/UX 3.0, avec des applications Macintosh comme l’emblématique Calculette et la ligne de commande dans le CommandShell.

Dans ce « mode Finder », A/UX peut non seulement faire tourner les applications Macintosh, mais aussi les applications X avec MacX, et même des applications hybrides exploitant les racines Unix du système tout en présentant une interface Mac. Le bon vieux Finder est là, mais il peut gérer les permissions Unix. L’interface graphique est familière, mais la ligne de commande n’est jamais loin grâce au CommandShell. C’est Mac OS X avant l’heure !

À la même époque, Apple forme l’alliance AIM avec IBM et Motorola. Les ennemis d’hier s’allient pour concevoir une plateforme commune, et même une culture partagée, afin de casser le duopole formé par Microsoft et Intel. Le Système 7 bute contre les choix des concepteurs du Macintosh en matière de protection de la mémoire et de gestion des tâches concurrentes.

Microsoft n’est pas beaucoup mieux lotie : empêtrée dans sa transition vers le noyau NT, elle rêve pourtant d’un système qui mettrait « l’information sous vos doigts », baptisé Cairo. Avec son système bâti sur le micronoyau Mach et le système BSD, NeXT a fait bouger les lignes. Alors que les systèmes des années 1980 ont fait leur temps, et que les systèmes des années 1990 semblent illusoires, l’industrie semble prête à basculer vers les systèmes Unix.

A/UX avec le serveur graphique X. Image A/UX Penelope.

Or IBM possède son propre système Unix, AIX, qui connait un certain succès dans le monde des serveurs. Apple imagine alors fondre A/UX et AIX dans le système OSF/1 de l’Open Software Foundation, basé sur le micronoyau Mach. A/UX 4.0 pourrait tourner sur toutes les machines utilisant l’architecture Power, des ordinateurs d’Apple aux serveurs d’IBM. Lorsqu’elles fondent Taligent en 1992, Apple et IBM misent pourtant sur le projet Pink, qui repart d’une feuille blanche.

La suite est connue : Pink n’a jamais été finalisé, malgré le renfort de HP, et Taligent s’est dissoute dans IBM (lire : Taligent, le système d'exploitation rêvé). Comme un lapin pris dans les phares, Apple a oublié qu’elle possédait déjà un système proposant la protection de la mémoire et le multitâche préemptif, avec de solides racines Unix et une compatibilité parfaite avec la logithèque Mac.

Ce système, bien sûr, c’était A/UX. Après une ultime révision en 1995, il est pourtant abandonné dans le courant de l’année 1996, quelques mois avant l’acquisition de NeXT. Entretemps, Microsoft a présenté Windows NT qui est vaguement compatible POSIX, puis Windows 95 avec une interface inspirée des travaux du projet Cairo. Avant que Steve Jobs ne reprenne formellement les rênes, Apple a tout juste le temps de présenter ses Network Servers, la première — et seule — gamme de produits utilisant le système AIX d’IBM.

Apple Network Server, la seule gamme de produits ayant jamais utilisé AIX, le système Unix d’IBM. Image Apple/Aventure Apple.

A/UX est aujourd’hui méconnu, mais il a marqué son époque, attirant un public de passionnés des systèmes Unix à la recherche d’une interface léchée. Jim Jagielski, développeur du serveur HTTP Apache et cofondateur de la fondation du même nom, fut ainsi l’auteur d’une imposante foire aux questions sur A/UX et l’opérateur du principal répertoire d’applications compatibles.

Enterré sans tambours ni trompette, A/UX fédère toujours une petite communauté de passionnés, qui collectionnent les Quadra 800, la plus puissante machine compatible avec son processeur 68040 à 33 MHz. A/UX n’a jamais été adapté aux processeurs PowerPC, mais Apple a soutenu l’effort de développement d’une distribution GNU/Linux pour cette architecture. Mais ça, c’est une autre histoire…


  1. Aujourd’hui introuvable. Les versions suivantes circulent assez librement sur le web, mais nous ne vous fournirons pas de liens, les ayants-droits du système Unix étant particulièrement litigieux. ↩︎


avatar Lucas | 

J’ai l’impression d’être un bébé en lisant ces articles historiques… mais merci de transmettre la mémoire !

avatar duke_fsc | 

La plus puissante fut le Quadra 840av (code name Cyclone) 68040 cadencé à 40Mhz avec son coprocesseur DSP. Plusieurs éditeurs avaient optimisé leur soft pour en tirer partie. Je me souviens d’adobe et son plugin dedié qui donnait un boost à certains filtres.
L’ultime Quadra fut le 950. Qui fut dérivé en Workgroup Server 9150.

Quant à AU/X, j’en avais une copie avec laquelle j’ai fait mes armes sous UNIX. J’étais encore un gamin à l’époque et je squattais un Apple Center (MCS à Cannes pour ceux qui connaissent) tous les samedis de l’ouverture à la fermeture sous l’œil bienveillant du gérant (moins des deux propriétaires) pour avoir la chance de jouer avec ces machines financièrement inaccessibles.

Le magasin était devenu la plus grande plaque tournante de soft pirates de PACA, on collectionnait les Syquest 44Mo et 88Mo bourrés à rabord de toute la logiteque Mac dont plusieurs ont été craqués par nos soins. Strata Studio Pro par ex fut l’une de nos victimes. Ah le bon temps de ResEdit !

J’adorais ces machines.

avatar Artefact3000 | 

« Au milieu des années 1980, Apple contrôle 20 % du marché naissant de l’informatique personnelle. »

Ça s’est pas amélioré. Pourquoi?

avatar duke_fsc | 

@DareMac

Bah… Windows tournait sur tous les PC. MacOS que sur les Macs (beaucoup trop chers pour des gens qui n’étaient pas encore convaincus par l’outil informatique.)

En somme la même chose qu’Android aujourd’hui.

L’Apple II avait vécu et d’autres machines l’ont remplacé pour les jeux : Atari, Amiga….

Le Mac et les jeux……

Puis Photoshop et XPress sont sortis sous Windows….

Puis internet, Système 8/9 étaient à la ramasse avec MacTCP, puis OpenTransport…

avatar Captain Bumper | 

C'est marrant je lisais pas mal de truc sur A/UX ces derniers jours. Néanmoins il y a une chose que je n'ai pas bien compris : A/UX est un véritable UNIX (noyau, système, E/S, etc.) sur lequel Apple a adapté un Finder qui n'a de commun au Finder du Système 6/7 que l'interface, et un système de compatibilité (comme Carbon?/Classic?) pour les applications Mac ou est-ce le Système 6/7 sur lequel elle a rajouté un UNIX?? Ce n'est pas très clair vu que tout le monde utilise le vocabulaire du Mac comme si c'était le Système 6 ou 7 (genre les mentions au MultiFinder, qui n'a aucun sens sur un UNIX, un système par essence multi tâche, avec un vrai multi tâche, pas une bidouille du genre Multi Finder).
Et comment fonctionnait la compatibilité avec les applications Mac? Dans un environnement enclavé comme CLassic, ou avec des API communes entre A/UX et Mac OS comme Carbon?

avatar duke_fsc | 

@Captain Bumper

Il faut se rappeler comment marchaient les Mac à l’époque. En particulier la MTB, hébergée en ROM. La tool box hébergeaient tous les outils qui permettaient à l’OS de tourner : le bootloader, la gestion du curseur de la souris (la différence de fluidité du curseur était flagrante entre Windows et Mac à l’époque), etc.
Ce qui permit de porter la même interface assez facilement entre les deux OS.
Pour la partie soft venant de système 6/7, c’était simplement une machine virtuelle qui permettaient de les faire marcher.
C’est pour ça que lorsque une app faisait une « bombe » 💣, ça ne faisait sauter que la couche graphique sous A/UX. Seule la machine virtuelle plantait.

avatar Captain Bumper | 

@Duke_fsc : oui ça je savais pour le démarrage, plus exactement il y a de mémoire une extension dans le dossier système de « Mac OS » (je mets les guillemets car cet appellation est arrivée avec le système 7.5.x ou 7.6) qui chargeait le bootloader d’A/UX car la ROM des Macs de l’époque étaient programmées poir démarrer sur le Système 6 et ses descendant et pas sur A/UX.
C’est plutôt les relations entre les 2 systèmes et comment ils sont imbriqués. Sur la copie d’écran avec le À propos, les numéros de version ne sont pas ceux d’A/UX mais du système 6. Je suis donc curieux de savoir comment est monté tout ça. Finder adapté ? Entièrement natif A/UX? Comment tourne le système 6 ou 7 dessus? Où se situe—t-il dans l’organigramme d’A/UX (a quel niveau? À quelle profondeur?). Car j’ai cru comprendre qu’on ne pouvait pas juste installer A/UX seul sur le DD, déjà a cause de cette histoire de bootloader et parce que Mac OS tourne avec A/UX

avatar Anthony Nelzin-Santos | 
@Captain Bumper : si tu veux bien, je te répondrai de manière détaillée dans quelques jours, le temps de retrouver un grand écran. Mais disons en prélude : c’est très malin… et c’est le bordel. (J’ai été très tenté de consacrer une série entière à A/UX, tant il y aurait de choses à dire sur ses choix techniques, mais j’ai comme le sentiment que j’y reviendrai d’une manière ou d’une autre.)
avatar Captain Bumper | 

@Anthony Nelzin-Santos : merci. Pour ma part je pense qu’A/UX mériterait une série à lui seul tellement ce système paraît obscur, on dirait le triangle des Bermudes des OS tellement peu d’informations claires transparaissent.

avatar Anthony Nelzin-Santos | 
@Captain Bumper : je vois que gaurejac a bien dépouillé le sujet.
avatar andr3 | 

@Anthony

👍👍👍👍👍

avatar anton96 | 

@Anthony

Oh oui

avatar frankm | 

Merci. Captivant

avatar raoolito | 

fascinant !

avatar totoguile | 

Merci pour cet article (et pour la série à venir)

La base unix est clairement l’un des meilleurs choix stratégique d’Apple, meme si cela ne s’est pas fait facilement.

avatar gwen | 

Mince, je viens d’apprendre des choses. J’avais entendu parlé de cette base UNIX sans savoir ce que c’était à l’époque. J’avais 16/17 ans et pour moi tout ressemblait au système 6 puis 7.

avatar Enzo-Lyon | 

« … Grâce au MultiFinder du Système 5 »
Cinq, sept, allez on est pas à deux chiffres près.

avatar Anthony Nelzin-Santos | 
@Enzo-Lyon : le MultiFinder était bien inclus avec le Système 5. Il a été fondu dans le système avec le Système 7.
avatar melaure | 

Je me souviens très bien de ce Quadra 800 qu’un pote de promo avait acheté. Et donc de son A/UX.

J’étais déjà bien dans le monde depuis 1989 gràce aux stations Apollo DN2000, 3000 et 4000 sous Domain/OS.

Et AIX (IBM + Bull) est mon quotidien ;)

Merci encore aux redacteurs ! Tout ces articles devraient finir dans un livre.

avatar YetOneOtherGit | 

Apple n’a jamais eu une stratégie permettant d’attaquer vraiment les grands acteurs du marché alors florissant de la station de travail Unix.

avatar gaurejac | 

@Captain Bumper :

- la sequence de démarrage se passe sous un système 6 ou 7 qui lance ensuite un bootloader et le noyau SystemV)

- une fois la sequence de démarrage terminée et le noyau unix lancé, le système unix totalement multitache est à la base de tout.
Il est lancé un process un peu similaire à "classic" sous les vieux osx qui lance le système 6 ou 7 proprement dit, qui fonctionne en mode 24 ou 32 bits, et qui gère, dans les sessions "mixtes", tout l'affichage :
- l'ecran de login
- le finder
- les applications Mac
- une appli Mac specifique (command shell) qui peut lancer et interagir avec des executables unix (et qui dispose d'un truc fabuleux qui mériterait d'exister sous OS X : les Kommandos)
- et une appli Mac qui sert de serveur X11 quand on lance des éxecutables unix X11 (MacX)

Tout le système 7 ou 6 est encapsulé en une seule tâche en gros, et si ça plante toute l'interface graphique plante mais le système unix continue à fonctionner sans interruption et relance l'ecran de login.

En gros tout ça fonctionne un peu comme fonctionnait "Classic" sous MacOS X jusque 10.4, à
la différence que sous le classic de MacOS X on n'avait jamais accès au Finder classic, on avait accès qu'au Finder de MacOS X.
Alors qu'ici c'est bien le finder du système 6 ou 7, un peu modifié quand même pour gérer les permissions Unix, savoir lancer les executables etc.

La gestion mémoire est particulière aussi et un peu différente de Classic sous MacOS X : le process "système" 6 ou 7 a sa propre zone mémoire attribuée (quelques Mo) et tourne dans la mémoire gérée par le noyau unix, mais c'est le cas aussi des programmes Mac qui ont une occupation mémoire prise non pas dans une zone réservée mais dans tout l'espace mémoire géré par le noyau (dont la mémoire paginée)
On peut donc attribuer si on a un swap suffisant 128 Mo à un seul programme Mac même si on a que 16 Mo de ram.

Pour ceux qui veulent tester A/UX et qui n'ont pas de quadra 700/800/950 sous la main il existe un émilateur qui fonctionne super bien : Shoebill

avatar Captain Bumper | 

@gaurejac : merci pour ces infos

J’avais bien compris que le boot commençait sur système 6 ou 7 et qu’une INIT se chargeait de lancer le bootloader UNIX au début du démarrage du Système 6/7. Mais que devient le boot du système 6/7 du coup quand A/UX commence à démarrer ? Il est killé? Puis rechargé indépendamment dans un processus à la Classic? Ou bien les 2 systèmes démarrent en même temps? 🤔😵‍💫
Et donc l’IHM et le Finder sont gérés par le Système 6/7 par dessus A/UX si je comprends bien? Drôle de montage, car sous OS X l’interface et les API graphiques ainsi que le Finder sont natifs. Je suis étonné que ça soit le « vieux » système qui gère l’interface et les API graphiques par dessus A/UX. Ça ne devait pas être très efficace sur ce point de vue (pas de vrai multi taches).
Concernant la mémoire ça fait plus propre et moderne (et ça aurait été une planche de salut pour moderniser le Système du Mac à l’époque!)

avatar gaurejac | 

@Captain Bumper :
oui le système 6/7 de boot est bien killé (et la mémoire purgée) quand le noyau A/UX commence à se charger.
Et oui le finder est bien géré par le système 6/7 par dessus A/UX, enfin ça c'est quand on ouvre une session "Finder" normale (en mode 24 bit ou 32 bits).

Mais il faut pas oublier qu'il reste la toolbox (en rom) en dessous de tout ça.

En fait si on ouvre :
- une session shell pure (sans système ni finder Mac donc) on a juste une console qui passe par la toolbox pour afficher le texte
- une session X11 : le serveur X11 affiche directement sur la carte graphique (comme sous netBSD-mac68k ou mklinux)
- une session finder : là le noyau A/UX laisse la main au système Mac, via la toolbox encore, pour l'affichage, y compris les applis X11 qui passent par MacX

Je pense qu'A/UX a été fait comme ça tout simplement parce que l'interface du Système 6/7 et finder était à l'époque probablement plus avancée sur pas mal de fonctions que X11, et surtout MacX existait déjà en tant que produit indépendant.

Le multitache est bien là, les process unix sont bien tous indépendants, par contre ceux du système mac ne sont pas protégés entre eux, ils sont tous hébergés par "startmac" qui lance le système, ils ne sont pas protégés entre eux au niveau de la mémoire.

avatar Captain Bumper | 

@gaurejac : merci pour ces infos intéressante.

Ok pour la mémoire, j'avais cru que le système 6/7 tournait dans un espace protégé et les logiciels Mac dans un autre.
Par contre étonnant que presque toute l'interface graphique est gérée par le Système 6/7... C'est comme si c'était Classic et les vieux pilote Mac OS 9 qui gérait les graphismes sous OS X... Ils auraient pu travailler là-dessus, mémoire, graphiques, etc. gérés nativement par Unix, et encapsuler plus le Système 6/7 comme une simple couche de compatibilité (ce qu'a fait Apple par la suite avec OS X/Classic). Donc en gros c'est un UNIX en ligne de commandes sur lequel on fait tourner un Système 6/7 un peu bidouillé pour avoir un Mac et son interface graphique... Niveau perf ça devait être pas fou! Et ça explique aussi comment ce système développé par une petite poignée de développeurs est presque sorti de nulle part, ça fait plus "bricolage" inachevé que vraie révolution dans les OS... Ça aurait été marrant qu'Apple y consacre plus de temps, de développeurs pour améliorer le truc.

avatar ingmar92110 | 

Wow il y en a qui connaissent le morceau, impressionnant pour les non spécialistes, ça prolonge bien l’article merci 🙏

avatar valcapri | 

Un livre sur le sujet serait passionnant notamment avec tous les commentaires techniques.

Je suppose que la licence du code source est toujours propriétaire ?

Ce serait top d’avoir tous les codes sources de ces OS « oubliées ». J’admire le travail de ceux de Haïku pour faire renaître BeOS.

CONNEXION UTILISATEUR