====== 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**, 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é sgnifiait **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énrentes, **UNICS** lui était composé d'**utilitaires** qui faisaient chacun une seule ''tâche'' mais la faisait bien.
===== Unix version 1 =====
**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 ''écritent'' en grande partie en **assembleur** (**langage de programmation** proche du **langage machine**) spécifiquement pour le **PDP-7**.
===== Unix version 4 =====
Après l'acquisition d'un nouvel **ordinateur** plus ''puissant'', le **DEC PDP-11** pour remplacer le ''vénérable'' **PDP-7**,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** 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 se 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** à 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** 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évellopement** 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** à **processeur 16 bits** sera ''porté'' sur le nouvel **ordinateur** de **DEC**, le **VAX** qui pour sa part est un **mini-ordinateur** à **processeur 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 version ''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** de **DEC**, elle ne se base plus sur l'**Unix originel** des **Bell Labs** mais sur **4.1cBSD** de l'**Université de Californie à Berkeley**, 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ée 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 déstiné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 n'est pas **émulable**, 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 courament **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.