Microsoft, depuis ses bureaux de Bellevue dans l'État de Washington, annonce en août 1980 son intention de commercialiser XENIX, une version d'UNIX pour microprocesseurs 16 bits. L'idée est de transformer ces petites machines en véritables stations de travail ou serveurs d'entreprise, avec multitâche et support multi-utilisateur. Microsoft vise plus loin qu'une simple adaptation technique. L'entreprise veut créer un standard universel, indépendant du matériel, qui résoudrait la fragmentation du marché.
Pourquoi UNIX comme point de départ ? Le système développé aux Bell Laboratories jouit d'une excellente réputation dans les universités et centres de recherche. Sa conception élégante, sa portabilité grâce au langage C, sa richesse fonctionnelle en font un candidat naturel. Le problème, c'est qu'UNIX dans sa forme originelle reste inaccessible commercialement. Western Electric, contraint par des restrictions réglementaires, ne peut pas vraiment se lancer dans le logiciel. L'entreprise propose donc UNIX au monde commercial sans garantie, sans assistance, sans maintenance, moyennant des frais de licence conséquents. Un frein considérable pour un système pourtant supérieur techniquement.
La fragmentation complique encore les choses. Berkeley, Harvard, la RAND Corporation et même plusieurs divisions de Western Electric maintiennent leurs propres versions incompatibles entre elles. Cette diversité témoigne de la flexibilité du système, mais sème la confusion. Un développeur d'applications doit choisir quelle version cibler, ce qui limite d'autant la portabilité de ses logiciels.
Microsoft identifie d'autres lacunes dans UNIX qui nuisent à sa viabilité commerciale. Le système privilégie la simplicité conceptuelle, parfois au détriment du pragmatisme. UNIX ne gère pas automatiquement les secteurs défectueux sur les disques économiques. Raisonnable dans un labo de recherche avec du matériel haut de gamme, inacceptable pour une entreprise soucieuse de maîtriser ses coûts. La récupération après panne reste rudimentaire. L'absence de mécanismes de comptabilité par utilisateur limite les possibilités de facturation et de gestion des ressources. La sécurité, bien que présente dans ses principes de base, manque de raffinement.
L'interface utilisateur rebute les non-initiés. Les noms de commandes, d'une concision extrême, restent obscurs même pour des utilisateurs expérimentés. La commande r écrit sur une bande magnétique, cat affiche le contenu de fichiers, awk recherche des motifs dans des données. Cette brièveté séduit les programmeurs qui tapent vite, mais décourage les utilisateurs occasionnels. Pas d'environnement graphique, pas de menus, juste du texte.
Autre problème : le catalogue d'applications métier est presque inexistant. UNIX excelle comme environnement de développement avec sa panoplie d'outils sophistiqués. Mais les entreprises cherchent surtout des solutions concrètes de comptabilité, gestion de stocks, facturation, paie. Ces applications restent rares ou absentes sous UNIX, ce qui menace son adoption en dehors des cercles techniques.
La construction de XENIX
XENIX se positionne comme une réponse globale à ces limitations. Microsoft part de la version 7 d'UNIX, considérée alors comme la plus aboutie, et entreprend un travail systématique d'amélioration et d'adaptation. Le premier défi est de porter le système depuis le miniordinateur DEC PDP-11 vers les microprocesseurs 16 bits aux architectures radicalement différentes. Cette tâche dépasse la simple recompilation. Les différences d'organisation mémoire, de gestion des périphériques et de performances nécessitent des adaptations profondes.
Microsoft travaille étroitement avec les fabricants de matériel pour que leurs machines supportent XENIX efficacement. Le système requiert certaines fonctionnalités matérielles, notamment une gestion mémoire permettant d'isoler les processus utilisateurs les uns des autres et de protéger le noyau. Les premiers microprocesseurs 16 bits ne fournissent pas nativement ces capacités. Les constructeurs doivent donc ajouter des circuits auxiliaires de gestion mémoire, une complexité et un coût supplémentaires.
Cette exigence matérielle explique pourquoi XENIX ne peut pas fonctionner sur n'importe quel ordinateur équipé d'un processeur 16 bits. Le répertoire OEM de mai 1983 liste dix-neuf entreprises proposant des systèmes compatibles XENIX. Altos Computer Systems propose des modèles supportant de un à huit utilisateurs avec 512 Ko de mémoire. Intel commercialise ses propres systèmes System 86/330 et 86/730. La société Santa Cruz Operation (SCO), qui deviendra un acteur incontournable de l'écosystème XENIX, figure déjà parmi les partenaires.
Les spécifications minimales de XENIX reflètent son positionnement comme système professionnel complet. Microsoft recommande 512 Ko de mémoire vive, 10 Mo de disque dur et un périphérique de sauvegarde. Ces exigences dépassent considérablement celles des systèmes 8 bits de l'époque, où 64 Ko de mémoire et des disquettes suffisent. Cette augmentation traduit l'ambition : fournir un environnement multitâche et multi-utilisateur authentique, capable de supporter simultanément plusieurs personnes sur des applications complexes.
Architecture et fonctionnalités
La structure logicielle de XENIX s'organise en cinq couches hiérarchiques. À la base se trouve le noyau UNIX version 7, qui gère les ressources matérielles, la planification des processus, le système de fichiers et les entrées-sorties. Au-dessus, les utilitaires standard d'UNIX version 7 offrent les commandes de base. La troisième couche contient les améliorations apportées par Microsoft : corrections de bogues, optimisations, fonctionnalités nouvelles. La quatrième couche rassemble les langages de programmation adaptés par Microsoft : BASIC interprété et compilé, COBOL, FORTRAN et Pascal. La cinquième couche accueille les logiciels développés par les utilisateurs et les éditeurs tiers.
Cette architecture modulaire simplifie la maintenance et l'évolution. Microsoft peut améliorer une couche sans perturber les autres, les interfaces entre couches restant stables. Les développeurs d'applications s'appuient sur les services fournis par les couches inférieures sans nécessiter une connaissance approfondie de leur fonctionnement interne.
La version 3.0 de XENIX, dont le résumé technique date de 1983, illustre la maturité croissante du système. Microsoft introduit des segments de données partagés permettant à plusieurs processus de communiquer efficacement via des zones mémoire communes. Cette fonctionnalité répond aux besoins des applications sophistiquées comme les bases de données. Des utilitaires d'analyse de pile aident les développeurs à dimensionner correctement la mémoire de leurs programmes, particulièrement important sur les machines à pile fixe comme les systèmes basés sur l'Intel 8086 et 80286.
Le système de messagerie fait l'objet d'une refonte complète. Le nouveau mailer, inspiré du programme mail de Berkeley, offre une interface plus accessible. Il s'intègre à un package de communication permettant l'envoi de messages entre machines locales via liaisons série, établissant ainsi un réseau rudimentaire mais fonctionnel. Les utilisateurs peuvent exécuter des commandes à distance et transférer des fichiers entre machines, jetant les bases d'un environnement distribué.
Microsoft développe des utilitaires d'administration système qui automatisent les tâches courantes. L'ajout ou la suppression de comptes utilisateurs, opérations auparavant fastidieuses nécessitant des modifications manuelles de plusieurs fichiers, s'effectuent désormais via une commande unique. L'administration des mots de passe impose le vieillissement par utilisateur, obligeant les personnes à changer régulièrement leur mot de passe. La séquence de démarrage sécurisée empêche l'accès au mode mono-utilisateur sans connaissance du mot de passe super-utilisateur, comblant une faille de sécurité importante dans UNIX standard.
Innovation dans l'interface utilisateur
Le shell visuel représente une innovation significative. Contrairement à l'interface en ligne de commande traditionnelle d'UNIX, ce shell propose un environnement piloté par menus, exploitant pleinement l'écran pour afficher des informations d'état et de contexte. Il fonctionne sous XENIX et sous MS-DOS, offrant une cohérence entre les deux systèmes. Cette caractéristique facilite la transition des utilisateurs familiers avec MS-DOS vers XENIX. Le shell visuel intègre une aide contextuelle, réduisant la courbe d'apprentissage. Les utilisateurs peuvent enrichir les menus avec leurs propres applications, personnalisant ainsi leur environnement de travail.
Les utilitaires d'accès aux fichiers MS-DOS illustrent la vision pragmatique de Microsoft. XENIX peut lire et écrire des disquettes formatées sous IBM DOS 1.1 et 2.0, ce qui simplifie l'échange de données entre les deux environnements. Cette interopérabilité s'avère précieuse pour les organisations disposant de machines fonctionnant sous différents systèmes. Cette capacité renforce la position de XENIX comme système complémentaire plutôt que concurrent de MS-DOS.
Outils de développement
Le système SCCS (Source Code Control System) rejoint la panoplie d'outils de développement. Ce logiciel de gestion de versions permet aux équipes de développeurs de suivre l'évolution de leur code source, de gérer les modifications concurrentes et de revenir à des versions antérieures en cas de problème. SCCS introduit des commandes comme admin pour créer et administrer les dépôts, delta pour enregistrer les modifications, get pour extraire une version spécifique.
Le formatage de documents bénéficie d'améliorations substantielles. Les macros de mémorandum mm remplacent les anciennes macros ms comme méthode standard de production de documents formatés. Le package mm offre davantage de fonctionnalités, une utilisation simplifiée et une meilleure cohérence visuelle. Un utilitaire mmcheck vérifie la syntaxe des fichiers sources avant formatage, détectant les erreurs courantes. Le système complet comprend également tbl pour les tableaux et eqn pour les équations mathématiques, permettant la création de documentation technique sophistiquée.
Le compilateur C évolue pour supporter les extensions du langage introduites dans UNIX System III, maintenant la compatibilité avec les développements contemporains. Sur les architectures basées sur l'Intel 80286, le compilateur supporte les segments de texte et de données de grande taille, ainsi que les éléments de données individuels dépassant 64 Ko. L'émulateur de coprocesseur arithmétique 80287 ou le support matériel de ce coprocesseur enrichit les capacités de calcul en virgule flottante.
Microsoft adapte sa gamme complète de langages à XENIX. Ces langages, déjà établis comme standards dans le monde 8 bits, apportent avec eux un écosystème de développeurs familiers avec leur syntaxe. Le BASIC existe sous forme interprétée pour le développement rapide et compilée pour les performances. COBOL cible les applications commerciales, domaine où XENIX doit s'imposer. FORTRAN répond aux besoins scientifiques et d'ingénierie. Pascal offre un langage structuré pour l'enseignement et le développement système. Cette diversité linguistique contraste avec UNIX standard, livré uniquement avec le compilateur C.
Stratégie commerciale
L'approche de distribution en trois packages distincts reflète une stratégie commerciale réfléchie. Le Timesharing System, package fondamental contenant le noyau et les utilitaires, suffit pour un environnement multi-utilisateur opérationnel. Le Text Processing System regroupe les outils de formatage de documents, utiles pour la documentation mais non indispensables. Le Software Development System rassemble compilateurs, débogueurs et outils de développement, nécessaires uniquement aux programmeurs. Cette modularité permet aux clients d'acquérir uniquement les composants correspondant à leurs besoins, réduisant l'investissement initial.
La documentation de XENIX fait l'objet d'un soin particulier. Microsoft produit sept manuels couvrant tous les aspects du système : Installation Guide, Operations Guide, User's Guide, Reference Manual, Programmer's Guide, Programmer's Reference Manual et Text Processing Guide. Ces documents, formatés au format compact 8,5x5 pouces, totalisent plus de mille pages. Contrairement à UNIX standard, fourni avec une documentation technique dense peu accessible aux non-spécialistes, XENIX propose des guides progressifs adaptés à différents publics. Cette approche pédagogique facilite l'adoption par des organisations dépourvues d'expertise UNIX préalable.
La disparition des pages de manuel en ligne, caractéristique traditionnelle d'UNIX, marque une rupture symbolique avec les pratiques du monde académique. Microsoft privilégie la documentation imprimée professionnelle, plus adaptée à un contexte commercial où les utilisateurs préfèrent feuilleter un manuel que naviguer dans un système d'aide en ligne textuel. Les pages de manuel restent disponibles sur demande, mais ne constituent plus l'élément central.
La stratégie de Microsoft repose sur l'établissement d'un écosystème complet autour de XENIX. Au-delà du système d'exploitation proprement dit, l'entreprise envisage de fournir ou de faciliter le développement d'outils de gestion de bases de données, de planification financière, de communication et de mise en réseau. Microsoft établit un centre de distribution, le Microsoft Clearing House, où les éditeurs tiers peuvent soumettre leurs applications pour validation et distribution. En réduisant la duplication d'efforts et en offrant un canal de distribution efficace, Microsoft espère attirer les développeurs d'applications professionnelles vers XENIX.
La compatibilité binaire ascendante entre versions de XENIX constitue un engagement important. Les programmes compilés pour une version antérieure continuent de fonctionner sur les versions ultérieures. Cette garantie, inhabituelle dans le monde UNIX où la recompilation fréquente reste nécessaire, protège l'investissement logiciel des clients. Elle permet aux éditeurs d'applications de maintenir une base de code unique supportant plusieurs versions de XENIX, simplifiant leur stratégie de support.
Les systèmes de fichiers XENIX version 2.3 restent utilisables avec la version 3.0 après exécution de l'utilitaire fsck de vérification et réparation. Cette préservation des données lors des mises à jour réduit le risque et la complexité des migrations, facteurs souvent dissuasifs dans les environnements de production. Microsoft accompagne ainsi les organisations dans leur évolution progressive vers les versions les plus récentes, sans imposer de ruptures technologiques brutales.
Un moment charnière
L'histoire de XENIX illustre une période charnière où l'industrie informatique tente de réconcilier la puissance technique des systèmes multiutilisateurs avec l'accessibilité économique des microprocesseurs. Microsoft s'efforce de transformer UNIX, système académique d'excellence mais inadapté au commerce, en produit viable pour le marché professionnel. Cette ambition nécessite des investissements substantiels en portage, développement, adaptation, documentation et support. Elle implique la construction patiente d'un réseau de partenaires matériels et logiciels, chacun contribuant à l'écosystème.
En 1987, Microsoft a revendu ses droits sur Xenix à SCO, qui a ensuite fusionné progressivement les fonctionnalités de Xenix dans son SCO Unix, créant SCO Open Desktop qui intégrait des éléments des deux systèmes. Les clients XENIX ont eu des chemins de migration vers SCO Unix.