Unix

Unix, officiellement UNIX (parfois écrit « Unix », avec des petites capitales), est un système d'exploitation multitâche et multi-utilisateur créé en 1969 par Kenneth Thompson. Il repose sur un interpréteur ou superviseur (le shell) et de nombreux petits utilitaires, accomplissant chacun une action spécifique, commutables entre eux (mécanisme de «  redirection ») et appelés depuis la ligne de commande [1].

Particulièrement répandu dans les milieux universitaires au début des années 1980 [2], il a été utilisé par beaucoup de start-ups fondées par des jeunes entrepreneurs à cette époque et a donné naissance à une famille de systèmes, dont les plus populaires à ce jour sont les variantes de BSD (notamment FreeBSD, NetBSD et OpenBSD), GNU/ Linux, iOS et OS X. On nomme « famille Unix », « systèmes de type Unix » ou simplement « systèmes Unix » l'ensemble de ces systèmes. Il existe un ensemble de standards réunis sous les normes POSIX et single UNIX specification qui visent à unifier certains aspects de leur fonctionnement.

Le nom « UNIX » est une marque déposée de l' Open Group, qui autorise son utilisation pour tous les systèmes certifiés conformes à la single UNIX specification ; cependant, il est courant d'appeler ainsi les systèmes de type Unix de façon générale. Il dérive de « Unics » (acronyme de « Uniplexed Information and Computing Service [3] »), et est un jeu de mot avec «  Multics », car contrairement à ce dernier qui visait à offrir simultanément plusieurs services à un ensemble d'utilisateurs, le système initial de Kenneth Thompson se voulait moins ambitieux et utilisable par une seule personne à la fois avec des outils réalisant une seule tâche [4].

Histoire

La genèse d'Unix

Un mini-ordinateur PDP-7
Un PDP-7

En 1969, Ken Thompson qui travaillait alors pour les laboratoires Bell développa la première version d'un système d'exploitation mono-utilisateur sous le nom de New Ken's System. Il réalisa ce travail sur un mini-ordinateur PDP-7 (Programmed Data Processor) de marque DEC animé par General Comprehensive Operating System [5] et rédigea le nouveau logiciel en langage d'assemblage. Le nom Unics fut suggéré par Brian Kernighan à la suite d'un jeu de mots « latin » avec Multics; « Multi- car Multics faisait la même chose de plusieurs façons alors qu'Unics faisait chaque chose d'une seule façon ». Ce nom fut par la suite contracté en Unix (pour être déposé finalement sous le nom UNIX par AT&T), à l'initiative de Brian Kernighan.

Un jugement d'expédient datant de 1956 [6] interdisait à l'entreprise AT&T, dont dépendait Bell Labs, de commercialiser autre chose que des équipements téléphoniques ou télégraphiques. C'est la raison pour laquelle la décision fut prise en 1975 [7] de distribuer le système Unix complet avec son code source dans les universités à des fins éducatives, moyennant l'acquisition d'une licence au prix très faible.

En 1971, conscient de la difficulté que représente la maintenance d'un système écrit en langage d'assemblage, Ken Thompson songea à réécrire Unix en TMG [8], mais il trouva que le TMG n'offrait pas ce dont il avait besoin. Pendant une courte période il songea à réécrire Unix en Fortran, mais finalement conçut le B avec l'aide de Dennis Ritchie dans les années 1969 et 1970, en s'inspirant du langage BCPL [9]. Cependant Unix ne fut jamais réécrit en B ; le B ne supportait pas les types, toutes les variables étaient de la même taille que les mots de l'architecture, l'arithmétique sur les flottants n'était pas implémentée ; de plus, le compilateur B utilisait la technique du threaded code  (en). C'est pourquoi Dennis Ritchie entreprit en 1971 d'écrire le New B, qui fut renommé en C. Le langage C est toujours l'un des langages les plus utilisés aujourd'hui [10], [11].

Ken Thompson et Dennis Ritchie présentent le premier article sur Unix au Symposium on Operating Systems Principles à l' université de Purdue en 1973 [12]. Le professeur Bob Fabry de l'université de Californie Berkeley (UCB), alors dans l'auditoire, est immédiatement intéressé et en Keith Standiford, étudiant de 2e cycle, installe la Version 4 à l'UCB, distribuée sur bande magnétique.

Début 1975 [13], [14], Ken Thompson passe une année comme professeur invité à son alma mater, l' UCB. Avec Jeff Schriebman et Bob Kridle, ils mettent sur pied la Version 6. C'est à ce moment qu'Unix commença à être diffusé hors des laboratoires Bell.

Unix version 7 fonctionnant sur un PC avec un émulateur de PDP-11
Unix version 7 sur un émulateur de PDP-11

À l'automne 1975, Bill Joy et Chuck Haley, alors en second cycle, s'intéressent au nouveau système et implémentent l'éditeur en ligne ex en Pascal, et finissent par explorer le fonctionnement du noyau au moment du départ de Ken Thompson. Le développement fut également rejoint par Alan Snyder, Steven C. Johnson, Michael Lesk dans cette période allant de 1973 à 1977 [15]. Au début de cette dernière année, Bill Joy réalise la première distribution dite Berkeley Software Distribution (BSD). Plus tard, avec l'arrivée de nouveaux terminaux, il écrit vi (l'éditeur visuel), une surcouche de ex. L'été 1978, la Second Berkeley Software Distribution ou 2BSD voit le jour [16].

Parallèlement, les concepts de datagramme et d' informatique distribuée émergent, avec Arpanet, le réseau Cyclades et la Distributed System Architecture, devenue en 1978 le modèle OSI-DSA. Plus de communications entre les machines des différents centres de recherche démontre l'utilité de systèmes d'exploitation ouverts et convergents, ce qui deviendra une nécessité avec les premières stations de travail incluant TCP/IP de Sun Microsystems, créée par Andy Bechtolsheim, Bill Joy, Vinod Khosla et Scott McNealy.

Puis en , Bill joy distribue 3BSD, la première distribution à supporter les ordinateurs VAX de DEC. C'est également cette année que sort la version 7, qui s'accompagne de nombreuses modifications notables telles que l'extension à 2 Go de la taille maximale d'un fichier, l'ajout de plusieurs utilitaires, et surtout une plus grande portabilité du système, c'est-à-dire qu’il devient plus facile de le modifier afin qu'il fonctionne sur d'autres plates-formes matérielles. C'est à cette époque que le premier grand portage d'Unix, la version 32/V, fut réalisé, sur un VAX 11/780.

L'expansion

Dès la fin de l'année 1977 [17], des chercheurs de l'université de Californie apportèrent de nombreuses améliorations au système Unix fourni par AT&T et le distribuèrent sous le nom de Berkeley Software Distribution (ou BSD). Ainsi BSD fut par exemple le premier système Unix à exploiter pleinement le mécanisme de mémoire virtuelle paginée du VAX 11/780.

Trois branches principales de développement des sources virent le jour :

  • La branche de recherche d'AT&T qui développa, toujours aux laboratoires Bell, jusqu'en 1990 [18], les 8e, 9e et 10e éditions du système Unix.
  • La branche commerciale d'AT&T qui développa System III, puis quatre éditions de System V (System V, SVR2, SVR3, SVR4).
  • Berkeley Software Distribution développé par l' université de Californie à Berkeley, jusqu'en 1994 [19].

Ces branches se sont mutuellement empruntées du code et/ou des concepts. Ainsi :

Chronologie et filiation des différents Unix et apparentés.
  • La 8e édition est issue de la version 4.1 BSD.
  • La version SVR3 a emprunté le concept des flux standards à la 8e édition.
  • La version SVR4 a intégré beaucoup de code de la version 4.3 BSD [20].
  • La version 4.4 BSD comporte une très petite quantité de code de la version SVR4.

Le rôle de la DARPA et la naissance de TCP/IP

Lors de la publication de 3BSD à la fin des années 1970 [21], la Defense Advanced Research Projects Agency ( DARPA) prend connaissance des avancées réalisées à l'UCB. Ils ont l'intention d'utiliser Unix pour leurs projets. De nombreux ingénieurs espèrent alors la création de standard innovants face au monopole IBM.

En automne de cette même année, Bob Fabry propose à la DARPA une version augmentée de 3BSD pour répondre à leurs besoins. Un contrat de 18 mois est signé en , et Bob Fabry rassemble une équipe [22]. Bill Joy, qui vient juste de soutenir de thèse de doctorat, se propose d'y participer. Les versions se succèdent jusqu'à 4.1BSD.

Satisfaite, la DARPA signe pour deux ans supplémentaires et le budget est presque multiplié par cinq. Le nombre de personnes impliquées croît vite. Le steering committee est formé pour aider à définir l'évolution du système.

Ce groupe se réunit deux fois par an entre et , et comprend en particulier Bob Fabry, Bill Joy et Sam Leffler de l'UCB, Dennis Ritchie des Bell Laboratories, Duane Adams et Bob Baker de la DARPA, ainsi que du personnel et des élèves de plusieurs autres universités, en particulier Stanford, Carnegie-Mellon et l’ université de Californie à Los Angeles. À partir de 1984 [réf. nécessaire], ce sont des ateliers réunissant bien plus de personnes qui prennent le relai.

C'est Rob Gurwitz qui publie la première implémentation des protocoles TCP/IP, les protocoles de l'Internet d'aujourd'hui. Bill Joy l'intègre au système et ajuste les performances. Cette implémentation est considérée par beaucoup comme l'implémentation de référence. Elle est reprise plus tard par Microsoft pour le système d'exploitation Windows, ce qui est possible grâce à la licence BSD très permissive sous laquelle BSD est publié. Vers la fin de l'été 1982, Bill Joy annonce qu'il rejoint Sun Microsystems [23], et Sam Leffler prend la suite du projet.

En , 4.2BSD est publié ; c'est la première version qui inclut la nouvelle pile TCP/IP [24]. Sam Leffler quitte l'UCB pour Lucasfilm et Mike Karels le remplace. 4.2BSD est alors très populaire et est plus vendue que toutes les autres distributions réunies, et que le System V d'AT&T, en particulier parce que ce dernier n'avait ni la communication par réseau ni le système de fichiers FFS (Berkeley Fast Filesystem).

À la conférence Usenix de 1985, 4.3BSD est annoncé [25]. De nouvelles architectures matérielles deviennent supportées, et, avec la version 4.3-Tahoe, le noyau est scindé en parties dépendantes et indépendantes du matériel.

Les procès et le passage à l' open source de BSD

Début 1992, Unix System Laboratories (USL), composante d'AT&T chargée de développer et vendre Unix, commence à poursuivre Berkeley Software Design, Incorporated (BSDI), mise en place pour développer et vendre une version commerciale [26]. Le procès n'aboutit pas comme le souhaitait USL qui lance alors un autre procès contre BSDI et l'UCB. USL est vendu par AT&T à Novell. En , un accord est trouvé :

  • 2 fichiers sur 18 000 sont retirés de Net/2.
  • Un certain nombre de changements mineurs sont faits sur d'autres fichiers.
  • Une notice de copyright est ajoutée à environ 70 fichiers (qui restent librement distribuables).

En , FreeBSD 2.0 sort avec les nouveaux fichiers de Net/2, alors appelée 4.4BSD-Lite, et des éléments de 386BSD.


Jusqu'à 4.3BSD-Tahoe, la licence AT&T s'applique toujours aux sources, qui sont toujours distribuées. Les utilisateurs ne sont pas des utilisateurs passifs mais participent activement au développement et améliorent progressivement le code original d'AT&T. La licence d'AT&T sur les sources étant devenue excessivement chère, les dernières sources originales ont été nettoyées du code d'AT&T, et en , la première BSD libre, la Networking Release 1 ou Net/1 est publiée.

La licence est volontairement très libérale : le logiciel peut être redistribué ou vendu, avec ou sans modification des sources, sous forme binaire (compilée) ou non. Les notices de copyright dans les sources doivent être laissées intactes, et la documentation doit mentionner l'origine du code (l' université de Californie à Berkeley, UCB).

Net/1 alors coûte 1 000 dollars à l'UCB pour la bande magnétique qui le transporte, et est mis à disposition par connexion FTP (file transfert protocol) anonyme (pas de mot de passe requis).

Le système de mémoire virtuelle du système d'exploitation MACH de l'université Carnegie-Mellon est importé, et 4.3BSD-Reno sort début 1990 [27].

De la fin des années 1990 à nos jours

L'incompatibilité grandissante entre les nombreuses variantes d'Unix proposées par les différents éditeurs pour les différentes machines porte peu à peu atteinte à la popularité et à la diversité des systèmes Unix. De nos jours, les systèmes Unix propriétaires, longtemps majoritaires dans l'industrie et l'éducation, sont de moins en moins utilisés. En revanche, trois systèmes de type Unix basés sur BSD ( FreeBSD, NetBSD et OpenBSD) d'une part, et le système GNU/ Linux, compatible Unix, d'autre part, ainsi que macOS (anciennement OS X, basé sur Darwin), occupent une part de marché de plus en plus importante.

Other Languages
Afrikaans: Unix
Alemannisch: UNIX
aragonés: Unix
العربية: يونكس
asturianu: Unix
azərbaycanca: Unix
žemaitėška: UNIX
беларуская: Unix
беларуская (тарашкевіца)‎: UNIX
български: Unix
বাংলা: ইউনিক্স
brezhoneg: Unix
bosanski: UNIX
català: Unix
Mìng-dĕ̤ng-ngṳ̄: Unix
čeština: Unix
Чӑвашла: UNIX
Cymraeg: Unix
dansk: UNIX
Deutsch: Unix
Ελληνικά: Unix
English: Unix
Esperanto: Unikso
español: Unix
eesti: UNIX
euskara: Unix
فارسی: یونیکس
suomi: Unix
Võro: Unix
Gaeilge: UNIX
galego: UNIX
עברית: Unix
हिन्दी: यूनिक्स
Fiji Hindi: UNIX
hrvatski: UNIX
magyar: Unix
Հայերեն: UNIX
interlingua: UNIX
Bahasa Indonesia: Unix
Ilokano: UNIX
íslenska: Unix
italiano: Unix
日本語: UNIX
ქართული: UNIX
Qaraqalpaqsha: Unix
қазақша: UNIX
ಕನ್ನಡ: ಯುನಿಕ್ಸ್
한국어: 유닉스
Kurdî: Unix
Кыргызча: Unix
Latina: Unix
lietuvių: UNIX
latviešu: UNIX
Malagasy: UNIX
македонски: Уникс
മലയാളം: യുണിക്സ്
монгол: Unix
मराठी: युनिक्स
Bahasa Melayu: UNIX
မြန်မာဘာသာ: ယူးနစ်စ်
Plattdüütsch: Unix
नेपाली: युनिक्स
नेपाल भाषा: युनिक्स्
Nederlands: Unix
norsk nynorsk: Unix
norsk bokmål: Unix
occitan: Unix
Ирон: UNIX
polski: Unix
português: Unix
română: UNIX
русский: UNIX
саха тыла: Unix
sardu: UNIX
Scots: Unix
srpskohrvatski / српскохрватски: Unix
සිංහල: යුනික්ස්
Simple English: UNIX
slovenčina: Unix
slovenščina: Unix
shqip: UNIX
српски / srpski: Јуникс
svenska: Unix
தமிழ்: யுனிக்சு
తెలుగు: యునిక్స్
Tagalog: UNIX
Türkçe: UNIX
татарча/tatarça: Unix
українська: UNIX
اردو: یونکس
oʻzbekcha/ўзбекча: UNIX
Tiếng Việt: Unix
Winaray: Unix
ייִדיש: יוניקס
中文: UNIX
Bân-lâm-gú: Unix
粵語: UNIX