Unix : le système d’exploitation qui a mis en place de nouvelles mesures

Le développement d’Unix compte parmi les plus importants ancêtres de l’histoire de l’ordinateur. Le système d’exploitation ne menait pas seulement à quelques concepts élémentaires de la technologie de l’information, comme le système de données construit de manière hiérarchique avec une structure des fichiers ; il a également servi de fondement au développement d’autres systèmes tels que, par exemple, le système d’exploitation propriété d’Apple macOS et iOS ou le projet open source Linux, desquels ont émergé de nombreux dérivés comme Ubuntu, Debian ou l’Android mobile. Comment le système Unix est-il devenu l’une des applications de gestion informatique les plus influentes ? Pourquoi l’équipe de développement n’a-t-elle pu, au début, enregistrer ses idées qu’exclusivement sur des tableaux noirs et des blocs-notes ?

Le projet commun Multics pose la première pierre

En 1965, dans le cadre de la conférence conjointe sur l’informatique, un groupe de travail présenta son idée d’un nouveau système d’exploitation. Le groupe comprenait des employés du Massachusetts Institute of Technology (MIT), de l’entreprise General Electric et des laboratoires Bell (Bell Labs) d’A&T (depuis 2016, partie du département de recherche et développement de Nokia.) Ils rebaptisèrent le système d’exploitation, dénommé Multiplexed Information and Computing Service, en Multics. Ils adoptèrent des approches complètement nouvelles en se concentrant particulièrement sur le concept du temps partagé. Multics devait donc être l’un des premiers systèmes permettant à plusieurs utilisateurs de travailler simultanément sur un ordinateur, en partageant le temps de calcul du processeur sous-jacent.

Pour mener à bien ses projets, le groupe de travail Multics avait besoin d’un ordinateur qui devait répondre à un certain nombre d’exigences spécifiques. D’un côté, il devait disposer d’un jeu d’instructions clairement structuré, afin de pouvoir utiliser le langage de programmation PL/I d’IBM destiné au développement, d’un autre il devait supporter l’opération multi-utilisateurs prévue, et travailler de manière asynchrone afin de minimiser les pertes de performance dans la gestion de la mémoire. C’est pour cette raison que le GE-635, et plus tard le GE-645 de General Electric, ont été choisis. Le développement a été effectué sur le système multi-utilisateurs CTSS, qui avait déjà été développé par le MIT au début des années 1960. Les retards dans le développement du compilateur PL/I, les goulots d’étranglement financiers, les différences internes et la pression croissante de l’extérieur ont finalement conduit Bell Labs à se retirer du projet en 1969.

De Multics à Unix

Multics a continué d’être développé au sein du MIT. Plus tard, il est ensuite distribué commercialement sur les machines Honeywell-6180 (jusqu’en 1986) par l’entreprise Honeywell International Inc, après son achat par General Electrics. L’informaticien Ken Thompson, anciennement employé à l’époque chez les laboratoires Labs, n’abandonna cependant pas l’idée d’un système à plusieurs utilisateurs. En collaboration avec Dennis Ritchie et une petite équipe d’AT&T, il commença à élaborer les plans de son propre système reposant sur les fondements de Multics. La recherche d’un ordinateur approprié fut d’abord sans succès et puisque les laboratoires Bell s’opposaient à l’achat d’un exemplaire adapté, les développeurs couchèrent d’abord sur le papier et sur des tableaux leurs idées, ainsi que l’avancement du système de fichiers prévu.

Finalement, un mini-ordinateur d’occasion PDP-7 de l’entreprise Digital Equipment Corporation (DEC) a pu être utilisé pour le projet prévu. Ce système informatique, qui prenait « seulement » la place d’une unité murale, fonctionnait avec le système d’exploitation GECOS (General Electric Comprehensive Operation System), qui servait dorénavant de plateforme de développement. Rapidement, de précieux outils logiciels tels qu’une ligne de commande (sh), un éditeur (ed) et le système de fichiers déjà existant sous format papier ont été développés, dans un premier temps encore dans un langage d’assemblage (orienté matériel mais simplifié pour l’homme). Puisque le nouveau système d’exploitation n’autorisait, contrairement à Multics, que deux utilisateurs, qui ne pouvaient travailler simultanément que sur un seul projet, il fut nommé Unics par l’équipe qui prit cette particularité pour modèle. Du fait de la limitation de la longueur des noms de fichiers dans GECOS, le nom définitif Unix fut créé.

D’abord B, ensuite C : Unix obtient son propre langage de programmation

Après que l’équipe des laboratoires Bell a écrit le système Unix et quelques programmes élémentaires, elle chercha à remplacer le langage d’assemblage utilisé par une variante moins complexe. Le projet de développer un compilateur pour le langage IBM Fortran déjà existant fut rejeté peu de temps après. À la place, les employés commencèrent à travailler sur un nouveau langage qui leur était propre, fortement orienté vers le PL/I, le langage Multics, et le BCPL (Basic Combined Programming Language) développé au MIT. Par la suite, Richie et le reste des collaborateurs ont réécrit certains des outils du système dans ce langage impératif jusqu’à ce qu’ils reçoivent un nouvel ordinateur PDP-11 en 1970 et furent obligés de repenser à nouveau car la nouvelle architecture du système n’était pas orientée mot comme celle de l’ordinateur PDP-7 et du langage de programmation B, mais orientée byte.

Au cours des deux années suivantes, les laboratoires Bell développèrent C, le successeur historique, dont la syntaxe et d’autres fonctions peuvent être trouvées dans divers langages de programmation modernes comme l’extension C++, Java, Javascript, PHP ou Perl. Lorsque le langage fut suffisamment mature en 1973, l’équipe développement commença à écrire le noyau complet du système Unix dans C. Le résultat fut rendu public par l’équipe Unix au milieu des années 1970. A ce moment-là, AT&T a le monopole d’Etat dans la branche des télécommunications et n’a pas l’autorisation de vendre des logiciels. Unix (version 6) est alors mis en place, entre-temps devenu un système de plusieurs utilisateurs qui permet également le travail simultané, et est mis à disposition gratuitement pour toutes les universités. Il comprend en plus un compilateur C qui rend le système utilisable sur presque toutes les plateformes.

Logiciel intuitif et open source, Unix conquiert la scène des développeurs

Avec l’officialisation du logiciel Unix pour les établissements d'enseignement, la marche triomphale du nouveau système d'exploitation a commencé. Il sert d'abord principalement comme un jouet pour la corporation de programmation. En revanche, les processus de travail communs sur les mainframes IBM et les machines PDP de l’époque ont continué à fonctionner sur des systèmes natifs tels que RSX-11, RT-11 ou IST. Pour les développeurs, cependant, la valeur du code source fourni par le noyau et les applications individuelles n'était pas seulement un effet d'apprentissage : Les faibles exigences du système Unix sur le matériel et le confort d'utilisation invitaient à l'expérimentation et au développement, ce qui a été particulièrement bien accueilli à l'Université de Californie à Berkeley, l'ancienne université d'origine de Thompson, même si que le fait qu'il ait accepté un poste de professeur invité dans le département d'informatique nouvellement créé en 1976 n'ait probablement pas joué un rôle insignifiant.

Le système Pascal, développé par Thompson, fut amélioré par deux anciens élèves diplômés, Bill Joy et Chuck Haley. Ils ont programmé un éditeur de texte complètement nouveau avec ex, le prédécesseur du vi, qui appartient encore aujourd’hui aux installations standard des systèmes unixoid. En 1977, sous la direction de Joy, une variante modifiée d’Unix est apparue. Elle contenait les améliorations et les développements réalisés jusqu’à présent. La Berkeley Software Distribution (BSD), qui a plus tard intégré le protocole réseau TCP/IP dans l’univers Unix et a pu répondre pour la première fois aux exigences d’un système d’exploitation libre (grâce à sa propre licence BSD), a depuis lors été considérée comme l’une des plus importantes modifications du système Unix.

Les années 80 : commercialisation et « guerre Unix »

Au cours des années qui suivent, de plus en plus de modifications devaient voir le jour pour lesquelles de plus en plus d’aspects financiers devaient également jouer un rôle. Microsoft acquit par exemple une licence Unix V7 en 1979 pour développer des ports pour les processeurs Intel et Motorola, entre autres. L'année suivante, l'éditeur de logiciels Xenix, qui était prévu comme système d'exploitation standard pour les PC, mais qui posait des exigences trop élevées en matière de matériel.

Microsoft a finalement donné le développement ultérieur au fabricant de logiciels SCO (Santa Cruz Operation) pour se concentrer sur OS/2 et le développement ultérieur de MS-DOS.

Bill Joy prend également le train en marche avec la création en 1982 de sa nouvelle entreprise Sun Microsystems, en utilisant bien sûr le système propriétaire SunOS (prédécesseur de Solaris) basé sur BSD, qui a été spécialement conçu pour être utilisé sur les serveurs et les postes de travail.

La vraie bataille pour obtenir les faveurs d’Unix commença cependant entre AT&T, qui a obtenu entre-temps l’autorisation de distribution commerciale, et l’Université Berkeley, qui, grâce au BSD et au grand nombre de soutien venant des programmateurs, était en mesure de briller avec des innovations précieuses et innovantes.

Ainsi, AT&T essaya d'abord de conquérir le marché avec System III (1981) et surtout avec le System V optimisé (1983), tous deux basés sur Unix V7, tandis que l'Université de Berkeley rendait 4.2BSD simultanément public, pour lequel plus de 1 000 licences ont été délivrées en 18 mois. Cela l'a rendu beaucoup plus populaire que le Système V payant, qui manquait du Fast File System (FFS) et de la capacité réseau (grâce à l'intégration TCP/IP) de la variante Berkeley.

Avec la quatrième version de System V (1988), AT&T implémenta ces deux, ainsi que de nombreuses autres fonctionnalités de BSD mais aussi de Xenix et SunOS, à la suite de quoi de nombreux utilisateurs passèrent à la solution commerciale.

Grâce au pingouin, Unix devient une solution serveur

Pendant que les différents systèmes Unix se concurrencent pour le bien-être de leur propre communauté, Apple et Microsoft se livrent une lutte sans merci, d’abord dans le secteur des ordinateurs personnels, et plus tard dans le domaine des serveurs. Alors que Microsoft a remporté la course des PC à domicile, un système basé sur des concepts d’Unix apparaît soudainement sur la scène en 1991 avec Linux, qui devait se préparer dans les années suivantes à conquérir l’environnement serveur. Avec le paquet d’un noyau sous licence libre et le logiciel GNU librement disponible, le développeur Linus Torvalds avait satisfait le désir d’un système d’exploitation open source compétitif et a ainsi touché le nerf de l’époque.

Jusqu’à aujourd’hui, de nombreux départements Unix-Linux comme Debian, CentOS, Red Hat ou Ubuntu, connus aussi comme dérivés, sont utilisés comme logiciels système pour les serveurs de toute sorte. Surtout Ubuntu qui devient de plus en plus populaires sur les PC domestiques. Linux, examiné plus en détail dans cet article de base n’est de loin pas le seul successeur d’Unix qui est important dans le monde informatique d’aujourd’hui : depuis Mac OS X 10.0 ou Mac OS x Server 1.0, le système d’exploitation Apple utilise Darwin, une variante BSD gratuite, comme sous-structure. L’Unix de Berkeley est lui-même remplacé plusieurs fois par de nombreux dérivés gratuits comme FreeBSD, OpenBSD ou encore NetBSD.

Il faut compter également iOS (même système de base que macOS) et Android (basé sur le noyau Linux) qui sont les deux systèmes d’exploitation de la famille Unix les plus répandus sur appareils mobiles.

Qu’est-ce qu’Unix : les propriétés importantes de cet ancêtre

Beaucoup de critères caractérisent Unix. Il s’agissait, à l’époque de son lancement, de nouveautés totales qui ne devaient pas seulement fortement influencer la structure des systèmes et distributions Unix ultérieures mais aussi être repris par les concurrents Apple et Microsoft dans leurs systèmes d’exploitation. C’est en particulier grâce aux caractéristiques suivantes que Ritchie, Thompson et le reste des collaborateurs ont fait du système Unix le précurseur des systèmes d’exploitation.

Un système de données hiérarchique et universel

Une composante élémentaire d’Unix est depuis le début le système de données hiérarchisé et organisé, qui permet aux utilisateurs de structurer les fichiers en dossier. N’importe quel nombre de sous-répertoires peut être assigné au répertoire racine, identifiable grâce à la barre oblique « / ». Suivant le principe de base « Everything is a file » (Tout est un fichier), Unix mappe également les lecteurs, disques durs, terminaux ou autres ordinateurs en tant que fichiers de périphériques dans le système de fichiers. Quelques dérivés, dont également Linux, marquent même les processus et leurs propriétés en tant que fichiers dans le système de fichiers virtuels procfs.

Opération multi processus : le multi-tâche

Ce qui fut décisif dans le succès d’Unix fut la possibilité d’exécuter simultanément des processus et des programmes, sans qu’ils n’interfèrent les uns avec les autres. Ainsi, le système d’exploitation se base dès le début sur la méthode du multi-tâche préventif. Avec cette méthode, l’ordonnanceur, qui fait partie du noyau du système d’exploitation, gère les processus individuels via un système de priorité. Ce n’est que beaucoup plus tard, au cours des années 1990, qu’Apple et Microsoft ont commencé à mettre en œuvre des solutions comparables de gestion des processus.

Système multi-utilisateurs

L’objectif principal de Multics était déjà de créer un système qui permette à plusieurs utilisateurs de travailler simultanément. Pour ce faire, chaque programme et chaque processus doit être affecté à un administrateur. Et même si le système Unix était initialement limité à deux utilisateurs, cette fonctionnalité faisait partie du portefeuille de logiciels système dès le début. L’avantage de ce type de système multi-utilisateur n’était pas seulement la possibilité d’accéder aux performances d’un seul processeur en même temps, mais aussi la gestion des droits associés. Les administrateurs pouvaient désormais définir les droits d’accès et les ressources disponibles pour les différents utilisateurs. La condition était tout de même que le matériel de l'ordinateur concerné soit impliqué.

Capacité de réseautage

Avec 4.2BSD, Berkeley Unix est devenu en 1983 l’un des premiers systèmes d’exploitation à intégrer la pile de protocole Internet, fournissant la base pour l’Internet et la configuration simple ainsi que la capacité d’agir en tant que client ou serveur. À la fin des années 1980, la quatrième version de System V, déjà mentionnée, était également une variante du système commercial AT&T dans lequel la légendaire famille de protocoles avait été ajoutée au noyau. Windows ne devait supporter TCP/IP qu’avec la version 3.11 (1993) et une extension.

Indépendance de plateforme

Alors que les autres systèmes d’exploitation et leurs applications étaient encore spécifiquement adaptés à un type de processeur spécifique au moment de la création d’Unix, l’équipe de Bell Labs a poursuivi l’approche d’un système portable dès le début. Bien que le premier langage était un langage d’assemblage, dès que la structure de base du logiciel système avait été créée, le projet d’un propre langage de programmation, plus élaboré, a été lancé, à partir duquel le langage historique C a émergé. Les composants écrits en C étaient néanmoins encore fortement liés à l’architecture des machines PDP que Richie et l’équipe utilisaient comme base de travail, malgré le compilateur inclus. Plus tard, avec la version Unix V7 fortement révisée (1979), le système d’exploitation a cependant gagné à juste titre sa réputation de système portable.

Principe de la boîte à outils Unix et l’interface Shell

Les systèmes Unix combinent une multitude d’outils et commandes utiles, qui ne sont en général conçus que pour des tâches spéciales. Linux a par exemple recours aux outils GNU. Le principe veut que pour toutes les solutions aux problèmes généraux, les réponses soient trouvées dans la combinaison des outils standards, au lieu de développer de nouvelles programmations spécifiques. L’outil le plus important a toujours été le Shell (sh), un interpréteur de commandes orienté texte, qui offre de nombreuses options de programmation. Cette interface utilisateur classique est aussi utilisable sans interface utilisateur graphique, même si une telle interface, qui trouva son chemin dans l’environnement Unix avec Linux, augmente naturellement le confort d’utilisation. Cependant, Shell offre quelques avantages essentiels aux utilisateurs avancés.

  • Fonctionnement simplifié grâce à l’auto-complétion intelligente
  • Fonction copier-coller
  • Interactif (accès direct) et non interactif (exécution de scripts)
  • Une plus grande flexibilité, puisque les applications individuelles (outils, commandes) peuvent être combinées presque librement
  • Interface utilisateur standardisée et stable, ce qui n’est pas toujours garanti avec une interface graphique
  • Les chemins de travail des scripts sont automatiquement documentés
  • Mise en œuvre rapide et facile des applications

Conclusion : quiconque veut comprendre un système d’exploitation doit jeter un œil à Unix.

La montée en puissance d’Apple et Microsoft, directement liée à leurs créateurs Bill Gates et Steve Jobs, est sans doute sans précédent. Cependant, le fondement de l’énorme succès des deux entreprises multinationales repose sur un travail de pionnier que Dennis Ritchie, Ken Thompson et le reste de l’équipe Unix ont abattu entre 1969 et 1974. Unix ne devait pas seulement produire quelques dérivés propres mais également influencer d’autres systèmes d’exploitation avec ses concepts comme un système de fichiers structuré hiérarchiquement, le puissant outil Shell ou bien la grande portabilité. C’est pour cette raison que le puissant langage de programmation le plus influent de l’histoire de l’informatique fut développé.

Pour prendre conscience des possibilités du langage et des méthodes de fonction générale des systèmes d’exploitation, il n’y a pas de meilleur objet d’illustration que le système Unix. Vous ne devez même pas recourir à l’une des variantes classiques : les distributions Linux comme Gentoo ou Ubuntu se sont adaptées aux exigences modernes, sans renoncer au principe structurel d’un contrôle maximum sur le système. Vous êtes un peu plus limité dans vos possibilités avec le macOS pour débutants, qui maîtrise l’équilibre en la puissante base Unix et une interface utilisateur graphique au design attrayant et aux couleurs éclatantes.