A/ROSE, l’OS temps réel d’Apple dans les années 80

Connaissez-vous A/ROSE, un système d’exploitation des années 80 ? Peu de chances, et pourtant il est intéressant.

A la sortie du Macintosh II, pour simplifier le développement des cartes NuBus, Apple avait imaginé une technologie intéressante : Macintosh Coprocessor Platform. L’idée était d’intégrer sur la carte un 68000 (comme le premier Macintosh), un peu de RAM (12 ko) et un OS complet, A/ROSE. L’intérêt était de simplifier les pilotes et surtout de décharger le processeur central du Macintosh.

A/ROSE (Apple Real-time Operating System Environment) demandait peu de mémoire (6 ko pour le noyau, ~23 ko pour le code et 48 ko de mémoire tampon) et était ce qu’on appelle temps réel, c’est-à-dire que la latence était garantie avec une valeur précise, contrairement aux OS classiques qui ont une latence variable. De plus, il était multitâche préemptif (comme les OS modernes) alors que l’OS des Macintosh ne proposait que du coopératif. La différence entre les deux vient de la gestion des programmes : dans le premier cas, l’OS gère l’utilisation du CPU (donc quel programme a accès aux ressources à un instant précis) alors que dans le second, c’est le programme lui-même qui gère les ressources (ce qui peut planter la machine en cas de soucis, OS compris). Pour les pilotes A/ROSE, il s’agissait en simplifiant du code chargé depuis le disque dur du Mac vers la carte au démarrage du Mac.

Dans la pratique, la plateforme a été peu utilisée, visiblement c’était assez cher. Il existe quelques cartes réseau (Ethernet, Token Ring, etc.) et c’est tout.

Pour ceux que le côté technique intéresse vraiment, il y a cet article avec des exemples de code. A noter que le concept existe encore actuellement avec des cartes comme les Killer NIC (qui intègrent un Linux embarqué dans une carte réseau) ou les Xeon Phi d’Intel.