Le dé­ve­lop­pe­ment d’Unix compte parmi les plus im­por­tants ancêtres de l’histoire de l’or­di­na­teur. Le système d’ex­ploi­ta­tion ne menait pas seulement à quelques concepts élé­men­taires de la tech­no­lo­gie de l’in­for­ma­tion, comme le système de données construit de manière hié­rar­chique avec une structure des fichiers ; il a également servi de fondement au dé­ve­lop­pe­ment d’autres systèmes tels que, par exemple, le système d’ex­ploi­ta­tion 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 ap­pli­ca­tions de gestion in­for­ma­tique les plus in­fluentes ? Pourquoi l’équipe de dé­ve­lop­pe­ment n’a-t-elle pu, au début, en­re­gis­trer ses idées qu’ex­clu­si­ve­ment sur des tableaux noirs et des blocs-notes ?

Le projet commun Multics pose la première pierre

En 1965, dans le cadre de la con­fé­rence conjointe sur l’in­for­ma­tique, un groupe de travail présenta son idée d’un nouveau système d’ex­ploi­ta­tion. Le groupe com­pre­nait des employés du Mas­sa­chu­setts Institute of Tech­no­logy (MIT), de l’en­tre­prise General Electric et des la­bo­ra­toires Bell (Bell Labs) d’A&T (depuis 2016, partie du dé­par­te­ment de recherche et dé­ve­lop­pe­ment de Nokia.) Ils re­bap­ti­sè­rent le système d’ex­ploi­ta­tion, dénommé Mul­ti­plexed In­for­ma­tion and Computing Service, en Multics. Ils adop­tè­rent des approches com­plè­te­ment nouvelles en se con­cen­trant par­ti­cu­liè­re­ment sur le concept du temps partagé. Multics devait donc être l’un des premiers systèmes per­met­tant à plusieurs uti­li­sa­teurs de tra­vail­ler si­mul­ta­né­ment sur un or­di­na­teur, en par­ta­geant le temps de calcul du pro­ces­seur sous-jacent.

Pour mener à bien ses projets, le groupe de travail Multics avait besoin d’un or­di­na­teur qui devait répondre à un certain nombre d’exigences spé­ci­fiques. D’un côté, il devait disposer d’un jeu d’ins­truc­tions clai­re­ment structuré, afin de pouvoir utiliser le langage de pro­gram­ma­tion PL/I d’IBM destiné au dé­ve­lop­pe­ment, d’un autre il devait supporter l’opération multi-uti­li­sa­teurs prévue, et tra­vail­ler de manière asyn­chrone afin de minimiser les pertes de per­for­mance 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é­ve­lop­pe­ment a été effectué sur le système multi-uti­li­sa­teurs CTSS, qui avait déjà été développé par le MIT au début des années 1960. Les retards dans le dé­ve­lop­pe­ment du com­pi­la­teur PL/I, les goulots d’étran­gle­ment fi­nan­ciers, les dif­fé­rences internes et la pression crois­sante de l’extérieur ont fi­na­le­ment 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é com­mer­cia­le­ment sur les machines Honeywell-6180 (jusqu’en 1986) par l’en­tre­prise Honeywell In­ter­na­tio­nal Inc, après son achat par General Electrics. L’in­for­ma­ti­cien Ken Thompson, an­cien­ne­ment employé à l’époque chez les la­bo­ra­toires Labs, n’abandonna cependant pas l’idée d’un système à plusieurs uti­li­sa­teurs. En col­la­bo­ra­tion avec Dennis Ritchie et une petite équipe d’AT&T, il commença à élaborer les plans de son propre système reposant sur les fon­de­ments de Multics. La recherche d’un or­di­na­teur approprié fut d’abord sans succès et puisque les la­bo­ra­toires Bell s’op­po­saient à l’achat d’un exem­plaire adapté, les dé­ve­lop­peurs cou­chè­rent d’abord sur le papier et sur des tableaux leurs idées, ainsi que l’avan­ce­ment du système de fichiers prévu.

Fi­na­le­ment, un mini-or­di­na­teur d’occasion PDP-7 de l’en­tre­prise Digital Equipment Cor­po­ra­tion (DEC) a pu être utilisé pour le projet prévu. Ce système in­for­ma­tique, qui prenait « seulement » la place d’une unité murale, fonc­tion­nait avec le système d’ex­ploi­ta­tion GECOS (General Electric Com­pre­hen­sive Operation System), qui servait do­ré­na­vant de pla­te­forme de dé­ve­lop­pe­ment. Ra­pi­de­ment, 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é­ve­lop­pés, dans un premier temps encore dans un langage d’as­sem­blage (orienté matériel mais simplifié pour l’homme). Puisque le nouveau système d’ex­ploi­ta­tion n’au­to­ri­sait, con­trai­re­ment à Multics, que deux uti­li­sa­teurs, qui ne pouvaient tra­vail­ler si­mul­ta­né­ment que sur un seul projet, il fut nommé Unics par l’équipe qui prit cette par­ti­cu­la­rité pour modèle. Du fait de la li­mi­ta­tion 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 pro­gram­ma­tion

Après que l’équipe des la­bo­ra­toires Bell a écrit le système Unix et quelques pro­grammes élé­men­taires, elle chercha à remplacer le langage d’as­sem­blage utilisé par une variante moins complexe. Le projet de dé­ve­lop­per un com­pi­la­teur pour le langage IBM Fortran déjà existant fut rejeté peu de temps après. À la place, les employés com­men­cè­rent à tra­vail­ler sur un nouveau langage qui leur était propre, fortement orienté vers le PL/I, le langage Multics, et le BCPL (Basic Combined Pro­gram­ming Language) développé au MIT. Par la suite, Richie et le reste des col­la­bo­ra­teurs ont réécrit certains des outils du système dans ce langage impératif jusqu’à ce qu’ils reçoivent un nouvel or­di­na­teur PDP-11 en 1970 et furent obligés de repenser à nouveau car la nouvelle ar­chi­tec­ture du système n’était pas orientée mot comme celle de l’or­di­na­teur PDP-7 et du langage de pro­gram­ma­tion B, mais orientée byte.

Au cours des deux années suivantes, les la­bo­ra­toires Bell dé­ve­lop­pè­rent C, le suc­ces­seur his­to­rique, dont la syntaxe et d’autres fonctions peuvent être trouvées dans divers langages de pro­gram­ma­tion modernes comme l’extension C++, Java, Ja­vas­cript, PHP ou Perl. Lorsque le langage fut suf­fi­sam­ment mature en 1973, l’équipe dé­ve­lop­pe­ment 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é­com­mu­ni­ca­tions et n’a pas l’au­to­ri­sa­tion de vendre des logiciels. Unix (version 6) est alors mis en place, entre-temps devenu un système de plusieurs uti­li­sa­teurs qui permet également le travail simultané, et est mis à dis­po­si­tion gra­tui­te­ment pour toutes les uni­ver­si­tés. Il comprend en plus un com­pi­la­teur C qui rend le système uti­li­sable sur presque toutes les pla­te­formes.

Logiciel intuitif et open source, Unix conquiert la scène des dé­ve­lop­peurs

Avec l’of­fi­cia­li­sa­tion du logiciel Unix pour les éta­blis­se­ments d'en­seig­ne­ment, la marche triom­phale du nouveau système d'ex­ploi­ta­tion a commencé. Il sert d'abord prin­ci­pa­le­ment comme un jouet pour la cor­po­ra­tion de pro­gram­ma­tion. En revanche, les processus de travail communs sur les main­frames IBM et les machines PDP de l’époque ont continué à fonc­tion­ner sur des systèmes natifs tels que RSX-11, RT-11 ou IST. Pour les dé­ve­lop­peurs, cependant, la valeur du code source fourni par le noyau et les ap­pli­ca­tions in­di­vi­duelles n'était pas seulement un effet d'ap­pren­tis­sage : Les faibles exigences du système Unix sur le matériel et le confort d'uti­li­sa­tion in­vi­taient à l'ex­pé­ri­men­ta­tion et au dé­ve­lop­pe­ment, ce qui a été par­ti­cu­liè­re­ment bien accueilli à l'Uni­ver­sité de Ca­li­for­nie à Berkeley, l'an­cienne uni­ver­sité d'origine de Thompson, même si que le fait qu'il ait accepté un poste de pro­fes­seur invité dans le dé­par­te­ment d'in­for­ma­tique nou­vel­le­ment créé en 1976 n'ait pro­ba­ble­ment pas joué un rôle in­sig­ni­fiant.

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 com­plè­te­ment nouveau avec ex, le pré­dé­ces­seur du vi, qui ap­par­tient encore aujourd’hui aux ins­tal­la­tions standard des systèmes unixoid. En 1977, sous la direction de Joy, une variante modifiée d’Unix est apparue. Elle contenait les amé­lio­ra­tions et les dé­ve­lop­pe­ments réalisés jusqu’à présent. La Berkeley Software Dis­tri­bu­tion (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’ex­ploi­ta­tion libre (grâce à sa propre licence BSD), a depuis lors été con­si­dé­rée comme l’une des plus im­por­tantes mo­di­fi­ca­tions du système Unix.

Les années 80 : com­mer­cia­li­sa­tion et « guerre Unix »

Au cours des années qui suivent, de plus en plus de mo­di­fi­ca­tions devaient voir le jour pour les­quelles de plus en plus d’aspects fi­nan­ciers devaient également jouer un rôle. Microsoft acquit par exemple une licence Unix V7 en 1979 pour dé­ve­lop­per des ports pour les pro­ces­seurs Intel et Motorola, entre autres. L'année suivante, l'éditeur de logiciels Xenix, qui était prévu comme système d'ex­ploi­ta­tion standard pour les PC, mais qui posait des exigences trop élevées en matière de matériel.

Microsoft a fi­na­le­ment donné le dé­ve­lop­pe­ment ultérieur au fabricant de logiciels SCO (Santa Cruz Operation) pour se con­cen­trer sur OS/2 et le dé­ve­lop­pe­ment ultérieur de MS-DOS.

Bill Joy prend également le train en marche avec la création en 1982 de sa nouvelle en­tre­prise Sun Mi­cro­sys­tems, en utilisant bien sûr le système pro­prié­taire SunOS (pré­dé­ces­seur de Solaris) basé sur BSD, qui a été spé­cia­le­ment 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’au­to­ri­sa­tion de dis­tri­bu­tion com­mer­ciale, et l’Uni­ver­sité Berkeley, qui, grâce au BSD et au grand nombre de soutien venant des pro­gram­ma­teurs, était en mesure de briller avec des in­no­va­tions pré­cieuses et in­no­vantes.

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'Uni­ver­sité de Berkeley rendait 4.2BSD si­mul­ta­né­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'in­té­gra­tion TCP/IP) de la variante Berkeley.

Avec la quatrième version de System V (1988), AT&T im­plé­menta ces deux, ainsi que de nom­breuses autres fonc­tion­na­li­tés de BSD mais aussi de Xenix et SunOS, à la suite de quoi de nombreux uti­li­sa­teurs passèrent à la solution com­mer­ciale.

Grâce au pingouin, Unix devient une solution serveur

Pendant que les dif­fé­rents systèmes Unix se con­cur­ren­cent pour le bien-être de leur propre com­mu­nauté, Apple et Microsoft se livrent une lutte sans merci, d’abord dans le secteur des or­di­na­teurs per­son­nels, 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 sou­dai­ne­ment sur la scène en 1991 avec Linux, qui devait se préparer dans les années suivantes à conquérir l’en­vi­ron­ne­ment serveur. Avec le paquet d’un noyau sous licence libre et le logiciel GNU librement dis­po­nible, le dé­ve­lop­peur Linus Torvalds avait satisfait le désir d’un système d’ex­ploi­ta­tion open source com­pé­ti­tif et a ainsi touché le nerf de l’époque. Jusqu’à aujourd’hui, de nombreux dé­par­te­ments 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 po­pu­laires sur les PC do­mes­tiques. Linux, examiné plus en détail dans cet article de base n’est de loin pas le seul suc­ces­seur d’Unix qui est important dans le monde in­for­ma­tique d’aujourd’hui : depuis Mac OS X 10.0 ou Mac OS x Server 1.0, le système d’ex­ploi­ta­tion 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’ex­ploi­ta­tion de la famille Unix les plus répandus sur appareils mobiles.

Qu’est-ce qu’Unix : les pro­prié­tés im­por­tantes de cet ancêtre

Beaucoup de critères ca­rac­té­ri­sent Unix. Il s’agissait, à l’époque de son lancement, de nou­veau­tés totales qui ne devaient pas seulement fortement in­fluen­cer la structure des systèmes et dis­tri­bu­tions Unix ul­té­rieures mais aussi être repris par les con­cur­rents Apple et Microsoft dans leurs systèmes d’ex­ploi­ta­tion. C’est en par­ti­cu­lier grâce aux ca­rac­té­ris­tiques suivantes que Ritchie, Thompson et le reste des col­la­bo­ra­teurs ont fait du système Unix le pré­cur­seur des systèmes d’ex­ploi­ta­tion.

Un système de données hié­rar­chique et universel

Une com­po­sante élé­men­taire d’Unix est depuis le début le système de données hié­rar­chisé et organisé, qui permet aux uti­li­sa­teurs de struc­tu­rer les fichiers en dossier. N’importe quel nombre de sous-ré­per­toires peut être assigné au ré­per­toire racine, iden­ti­fiable grâce à la barre oblique « / ». Suivant le principe de base « Eve­ry­thing is a file » (Tout est un fichier), Unix mappe également les lecteurs, disques durs, terminaux ou autres or­di­na­teurs en tant que fichiers de pé­ri­phé­riques dans le système de fichiers. Quelques dérivés, dont également Linux, marquent même les processus et leurs pro­prié­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 pos­si­bi­lité d’exécuter si­mul­ta­né­ment des processus et des pro­grammes, sans qu’ils n’in­ter­fè­rent les uns avec les autres. Ainsi, le système d’ex­ploi­ta­tion se base dès le début sur la méthode du multi-tâche préventif. Avec cette méthode, l’or­don­nan­ceur, qui fait partie du noyau du système d’ex­ploi­ta­tion, gère les processus in­di­vi­duels 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 com­pa­rables de gestion des processus.

Système multi-uti­li­sa­teurs

L’objectif principal de Multics était déjà de créer un système qui permette à plusieurs uti­li­sa­teurs de tra­vail­ler si­mul­ta­né­ment. Pour ce faire, chaque programme et chaque processus doit être affecté à un ad­mi­nis­tra­teur. Et même si le système Unix était ini­tia­le­ment limité à deux uti­li­sa­teurs, cette fonc­tion­na­lité faisait partie du por­te­feuille de logiciels système dès le début. L’avantage de ce type de système multi-uti­li­sa­teur n’était pas seulement la pos­si­bi­lité d’accéder aux per­for­mances d’un seul pro­ces­seur en même temps, mais aussi la gestion des droits associés. Les ad­mi­nis­tra­teurs pouvaient désormais définir les droits d’accès et les res­sources dis­po­nibles pour les dif­fé­rents uti­li­sa­teurs. La condition était tout de même que le matériel de l'or­di­na­teur concerné soit impliqué.

Capacité de ré­seau­tage

Avec 4.2BSD, Berkeley Unix est devenu en 1983 l’un des premiers systèmes d’ex­ploi­ta­tion à intégrer la pile de protocole Internet, four­nis­sant la base pour l’Internet et la con­fi­gu­ra­tion 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à men­tion­née, était également une variante du système com­mer­cial AT&T dans lequel la lé­gen­daire famille de pro­to­coles avait été ajoutée au noyau. Windows ne devait supporter TCP/IP qu’avec la version 3.11 (1993) et une extension.

In­dé­pen­dance de pla­te­forme

Alors que les autres systèmes d’ex­ploi­ta­tion et leurs ap­pli­ca­tions étaient encore spé­ci­fi­que­ment adaptés à un type de pro­ces­seur spé­ci­fique 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’as­sem­blage, dès que la structure de base du logiciel système avait été créée, le projet d’un propre langage de pro­gram­ma­tion, plus élaboré, a été lancé, à partir duquel le langage his­to­rique C a émergé. Les com­po­sants écrits en C étaient néanmoins encore fortement liés à l’ar­chi­tec­ture des machines PDP que Richie et l’équipe uti­li­saient comme base de travail, malgré le com­pi­la­teur inclus. Plus tard, avec la version Unix V7 fortement révisée (1979), le système d’ex­ploi­ta­tion a cependant gagné à juste titre sa ré­pu­ta­tion 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 com­bi­nai­son des outils standards, au lieu de dé­ve­lop­per de nouvelles pro­gram­ma­tions spé­ci­fiques. L’outil le plus important a toujours été le Shell (sh), un in­ter­pré­teur de commandes orienté texte, qui offre de nom­breuses options de pro­gram­ma­tion. Cette interface uti­li­sa­teur classique est aussi uti­li­sable sans interface uti­li­sa­teur graphique, même si une telle interface, qui trouva son chemin dans l’en­vi­ron­ne­ment Unix avec Linux, augmente na­tu­rel­le­ment le confort d’uti­li­sa­tion. Cependant, Shell offre quelques avantages es­sen­tiels aux uti­li­sa­teurs avancés.

  • Fonc­tion­ne­ment simplifié grâce à l’auto-com­plé­tion in­tel­li­gente
  • Fonction copier-coller
  • In­te­rac­tif (accès direct) et non in­te­rac­tif (exécution de scripts)
  • Une plus grande flexi­bi­lité, puisque les ap­pli­ca­tions in­di­vi­duelles (outils, commandes) peuvent être combinées presque librement
  • Interface uti­li­sa­teur stan­dar­di­sée et stable, ce qui n’est pas toujours garanti avec une interface graphique
  • Les chemins de travail des scripts sont au­to­ma­ti­que­ment do­cu­men­tés
  • Mise en œuvre rapide et facile des ap­pli­ca­tions

Con­clu­sion : quiconque veut com­prendre un système d’ex­ploi­ta­tion doit jeter un œil à Unix.

La montée en puissance d’Apple et Microsoft, di­rec­te­ment 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 en­tre­prises mul­ti­na­tio­nales 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 in­fluen­cer d’autres systèmes d’ex­ploi­ta­tion avec ses concepts comme un système de fichiers structuré hié­rar­chi­que­ment, le puissant outil Shell ou bien la grande por­ta­bi­lité. C’est pour cette raison que le puissant langage de pro­gram­ma­tion le plus influent de l’histoire de l’in­for­ma­tique fut développé.

Pour prendre cons­cience des pos­si­bi­li­tés du langage et des méthodes de fonction générale des systèmes d’ex­ploi­ta­tion, il n’y a pas de meilleur objet d’il­lus­tra­tion que le système Unix. Vous ne devez même pas recourir à l’une des variantes clas­siques : les dis­tri­bu­tions Linux comme Gentoo ou Ubuntu se sont adaptées aux exigences modernes, sans renoncer au principe struc­tu­rel d’un contrôle maximum sur le système. Vous êtes un peu plus limité dans vos pos­si­bi­li­tés avec le macOS pour débutants, qui maîtrise l’équilibre en la puissante base Unix et une interface uti­li­sa­teur graphique au design attrayant et aux couleurs écla­tantes.

Aller au menu principal