====== La naissance d'Unix au laboratoire Bell Labs ======
Le logo des **Bell Labs** : {{ :wiki:histoire_informatique:at_t_bell_laboratories_logo.svg.png?300 |}}
**Unix** est un système d'exploitation **multitâche** et **multi-utilisateurs**, crée au **laboratoire Bell Labs** qui est un centre de recherche mené par **Kenneth Thompson** auparavant détenu par l'entreprise de téléphonie **AT&T** et désormais par l'**Open Group**.
===== UNICS =====
La première ''ébauche'' de **Unix** fut crée en 1969 par **Kenneth Thompson** et **Dennis Ritchie** sur un ordinateur **DEC PDP-7** ''18 bits'', elle s'appelait à l'origine **UNICS** (**//Uniplexed Information and Computing Service//**). Cette version ne supportait pas encore le **multitâche**. UNICS fut très vite renommé Unix.
**UNICS** acronyme de **Uniplexed Information and Computing Service** était un jeu de mots avec **Multics** qui de son coté signifiait **MULTiplexed Information and Computing Service**. Multics était un **OS** à **temps partagé**, le temps partagé permet à un OS de simuler le partage par plusieurs utilisateurs de **temps processeur**, cet OS était très ambitieux mais très complexe à mettre en oeuvre, du coup Kenneth Thompson et Dennis Ritchie ont décidés de créer UNICS en se basant sur beaucoup de concept de Multics, en autres le temps partagé mais se voulait beaucoup plus simple et contrairement à Multics qui était doté d'utilitaires qui chacun pouvait faire plusieurs tâches différentes, UNICS, lui était composé d'utilitaires qui faisaient chacun une seule tâche mais la faisait bien.
===== Unix version 1 =====
Après l'acquisition d'un mini-ordinateur de **Digital Equipment Corporation** (**//DEC//**), le **DEC PDP-11** ''16 bits'', plus précisément le **PDP-11/20**, **Unix version 1** est sorti en 1971, La liste des **utilitaires Unix** en ligne de commande (CLI) incluses sous Unix version 1 est la suivante : **ar, as, bcd, cal, cat, chdir, chmod, chown, cmp, cp, date, dc, df, du, ed, find, glob, init, ld, ln, ls, mail, mesg, mkdir, mkfs, mount, mv, nm, od, pr, rm, rmdir, roff, sh, sort, stat, strip, su, sum, tty, umount, wc, who, write**, cette version également précurseur des commandes Unix : **fsck, reboot et adb**, le système contenait également un **compilateur B** et un **complateur Fortran**, d'un **interpréteur BASIC**, des fichiers de périphériques, des fonctions de gestion de bandes perforées, des disques **DECtape** et de disques **RK05**.
===== Unix version 2 =====
**Unix version 2** sort en 1972 mêlant **assembleur** et **langage C** et composé de l'ajout des commande Unix : **echo, exit, login, man, nroff, strip, stty**, d'un processeur de **macro m6**, un compilateur **TMG** et le premier **compilateur C**.
===== Unix version 3 =====
**Unix version 3** est publié en 1973 et a introduit les commandes Unix suivantes : ** crypt, kill, passwd, ps, size, speak, split, uniq** et **yacc**, d'un **débogueur C**, du système de **pipes** ''|''. Les commandes Unix sont réparties entre ''/bin'' et ''/usr/bin'', ce qui nécessite un chemin de recherche (''/usr'' était le point de montage d'un second disque dur). Le nombre total d'installations était de ''16''.
Ses premières versions d'Unix étaient ''écrites'' en grande partie en **assembleur** (**langage de programmation** proche du **langage machine**) spécifiquement pour le PDP-11.
===== Unix version 4 =====
Après l'acquisition d'un nouveau mini-ordinateur plus ''puissant'', le **DEC PDP-11/45** pour remplacer le vénérable **PDP-11/20**, en novembre 1973 sorti **Unix version 4** qui a été entièrement réécrit en **langage C** pour faciliter l'écriture de code source et surtout pour rendre théoriquement le système plus aisément ''portable'' sur d'autres machines, en conséquence c'est une version notable. Unix version 4 à ajouté les commandes Unix, **comm, dump, file, grep, nice, nohup, sleep, sync, tr, wait, printf**, un interpréteur **SNOBOL** et les pages de manuel (man) sont désormais formaté avec **troff**. Cette version fût présentée ''publiquement'' dans un article **CACM**. Le nombre d'installations était de ''20'' **machines**.
Pour un bref historique du langage C, à la base Ken Thompson a crée le **langage B** en s'inspirant du **langage BCPL** (**//Basic Combined Programming Language//**) mais c'est vite rendu compte qu'il était trop restrictif et de ce fait Dennis Ritchie et **Brian Kernighan** dans une moindre mesure ont inventés le langage C spécifiquement pour Unix en partant du B de Ken Thompson.
===== Unix version 5 =====
Ensuite vint **Unix version 5**, cette version fut présentée officiellement au **Symposium on Operating Systems Principles** (**//SOSP//**) en 1973 et désormais beaucoup de personnes sont intéressées pour acquérir se fameux OS Unix mais un décret ''interdisait'' l'entreprise **AT&T** à ''vendre'' un produit qui n'a pas de lien direct avec la téléphonie, car AT&T est un opérateur téléphonique. Toutefois, cela n'empêchât pas Ken Thompson d'envoyer discrètement des bandes et disques d'installation à la demande. C'est aussi cette version qui a été largement concédée sous ''licence'' aux établissements d'enseignement, pour rappel AT&T n'ayant pas la possibilité de vendre Unix. Cette version a été dotée de ses nouvelles commande Unix : **col, dd, diff, eqn, lpr, pwd, spell, tee** et des droits d'accès **sticky bit**. Le nombre de machines sur lesquelles ont été installée Unix version 5 était supérieur à ''50''.
===== Unix version 6 =====
En mai 1975 c'est au tour de **Unix version 6** (**V6**) de voir le jour, version qui inclut le concept de **tubes** (**Pipe** en anglais) qui accru considérablement les possibilités offertes pour l'utilisation des commandes Unix, des scripts shell et du développement de l'OS lui même. Il est a noté que c'est la première version à être ''portée'' sur d'autres ordinateurs que le PDP11, en autres l'**Interdata 7/32** et c'est également à ce moment que **1BSD** voit le jour, qui inclut un **compilateur de Pascal** et l'éditeur de texte ligne par ligne **ex** conçu pour fonctionner sur Unix version 6, pour le moment 1BSD n'est qu'un **ensemble de logiciels** mais pas une **distribution Unix** à part entière. Cette version fut très prisée par les universités et en particulier par l'**Université de Californie à Berkeley**. La V6 introduit les nouvelles commandes Unix : **ratfor, bc, chgrp, cron, newgrp, ptrace, tbl, units, wall**. Une version réduite d'Unix version 6, pour **PDP-11/10** a été créée en mai 1977 sous le nom de **MINI-UNIX**.
===== Unix version 7 et UNIX/32V =====
En janvier 1979, c'est au tour de **Unix version 7** ou **V7** de voir le jour, elle remplace le shell **Thompson shell** par le **Bourne shell** de **Stephen Bourne** et est affublée de nombreuses nouvelles commandes unix : **adb, at, awk, banner, basename, cu, diff3, expr, f77, factor, fortune, iostat, join, lex, lint, look, m4, make, rev, sed, tabs, tail, tar, test, touch, true, false, tsort, uucp, uux**, ainsi q'un nouveau compilateur portable C nommé **ppc** (**//Portable C Compiler//**), l'appel système appelé **ioctl**, la bibliothèque **standard C** nommé **stdio** pour le flux d' entrée et le flux de sortie standard de fichiers . Unix version 7 fonctionnant à l'origine sur PDP-11 qui est un mini-ordinateur ''16 bits'' sera porté sur le nouvel ordinateur de DEC, le **VAX** qui pour sa part est un mini-ordinateur ''32 bits''.\\
Se ''portage'' sur VAX s'appel **UNIX/32V** ou **32V** et est le premier Unix ''32 bits'' et sort en juin 1979. Presque tous les UNIX actuels descendent de 32V. La V7 a également été portée sur l'**Interdata 8/32** de **PerkinElmer, Inc**. Unix version 7 a eu une influence très importante et certain ''puriste'' vienne même à dire que la V7 est le ''dernier vrai'' Unix et c'est aussi la dernière version des laboratoires Bell Labs à être diffusée hors de Bell Labs. Plus tard, il y eu même un portage de la V7 sur **x86** par le groupe **Nordier & Associates**.
À noter que **Caldera International** à acheter les ''droits'' sur les Unix des Bell Labs et en 2002 Caldera a publié Unix V1, V2, V3, V4, V5, V6 et V7 sur PDP-11 et UNIX/32V sur VAX en tant que **FOSS** (**//Free and open-source software//**) sous une **licence permissive BSD**. Merci à Caldera, car depuis lors tous les **BSD Unix** sont également ''libres'' ce qui inclue la branche **2.XBSD**, **3BSD**, **4.1BSD**, **4.2BSD** et **4.3BSD** et ses versions ultérieures, en clair tous les Unix basés sur les Unix des Bell Labs jusqu'à la V7 et son pendant UNIX/32V.
Avant Unix version 7, la commande pour changer de répertoire, **cd**, s'appelait **chdir** jusqu'à Unix version 6. Si vous souhaitez émuler Unix version 6 et ses versions ''antérieures'' vous ne serez donc pas surpris de ne pas trouver la commande **cd**.
===== Unix version 8 =====
En février 1985 sort **Unix version 8**, déstinée à l' ordinateur **VAX-11** plus particulièrement le **VAX-11/750** de DEC, elle ne se base plus sur l'**Unix originel** des Bell Labs mais sur **4.1cBSD** de l'**Université de Californie à Berkeley** (**UCB**), cette version était complétée des commandes Unix : **curses, cflow, clear, compress, cpio, csh, cut, ksh, last, netstat, netnews, seq, telnet, tset, ul, vi, vmstat**, donc l'ajout de commandes réseaux, du **KornShell** (**//ksh//**), shell Unix créé par **David Korn**, de la bibliothèque logicielle **Curses**, de la base de données de l' UCB, **Berkeley DB**, le shell de base (**sh**) fût remplacé par le shell de **UNIX System V**, les **sockets BSD** ont été remplacés par le framework **Streams** de System V pour la mise en réseau, le terminal graphique **Blit** est devenu l'interface utilisateur par défaut, les langages de programmation, **Lisp**, **Pascal** et **Altran** ont été inclus et un système de fichiers réseaux permettant l' accès au système de fichiers à ''distance''.
Malgré que Unix version 8 n'était pas destinée à sortir hors des Bell Labs, il est tout à fait possible d'utiliser cette version avec l'émulateur [[wiki:virtualisation_et_emulation:simh|SIMH]] de **Bob Supnik** mais pas les versions ultérieures.
===== Unix version 9 =====
En septembre 1986 sort **Unix version 9** qui incorpore beaucoup de code de **4.3BSD**, une version généralisée du mécanisme **IPC Streams** introduit à partir de la V8, l'appel système **mount** a été ''étendu'' pour connecter un flux à un fichier, dont l'autre extrémité peut être connectée à un programme de niveau utilisateur, l'éditeur de texte **Sam**, qui fût plus tard intégré au système d'exploitation **Plan9** des Bell Labs. Cette version n'est jamais sortie des Bell Labs et ne peut pas être émulée, en tout cas à l'heure actuelle.
===== Unix version 10 =====
En octobre 1989 sort **Unix version 10** qui sera la dernière version des Bell Labs, parmi les innovations, il y avait des outils de **composition graphique** conçus pour fonctionner de concert avec troff, un **interpréteur C**, des programmes d'animation et divers outils prévu pour fonctionner par la suite sous Plan9, l'outil de compilation **Mk** et l' interpréteur de commandes **rc**, se shell (rc), deviendra le shell par défaut de **Plan9** (**Plan 9 from Bell Labs**). Le système d'exploitation de **Doug McIlroy** et **James A. Reeds** appelé **IX** a été basé sur la V10.
La V8, V9 et V10 ne sortiront jamais des laboratoires Bell Labs, se sont des versions de ''recherche'' qui se basent toutes sur **BSD UNIX**. À la suite de la V10, le système d'exploitation ''distribué'' //Plan 9 from Bell Labs//, appelé plus couramment //Plan 9//, qui n'est pas un système UNIX mais s'en inspire énormément. Le format de codage des caractères **UTF-8** a été crée par Ken Thompson pour //Plan 9//.
L'Unix des Bell Labs était également appelé **UnixTSS** (pour **UNIX Time-Sharing System**) mais aussi **Research Unix** étant donné que l'Unix des Bell Labs était avant tout un Unix de recherche.