Chapitre 2. Deux décennies d'Unix Berkeley — De la version AT&T à la version libre

Table des matières
La genèse
Les premières distributions
Unix VAX
La DARPA soutient le projet
4.2BSD
4.3BSD
Networking Release 1
4.3BSD-Reno
Networking Release 2
La saga judiciaire
4.4BSD
4.4BSD-Lite, Release 2

La genèse

Ken Thompson et Dennis Ritchie ont présenté le premier document concernant Unix à la conférence Principes des systèmes d'exploitation à l'université de Purdue en novembre 1973. Le professeur Bob Fabry, de l'université de Californie à Berkeley, se trouvait dans le public et souhaita d'emblée obtenir une copie du système afin de le tester à Berkeley.

À cette époque, Berkeley ne possédait que de gros systèmes offrant uniquement du traitements par lots (batch processing). La première démarche visa à obtenir un PDP-11/45 afin de faire fonctionner la version 4 d'Unix, alors la plus récente. Le département d'informatique de Berkeley et les départements de mathématiques et de statistique s'associèrent pour acheter ensemble une telle machine. En janvier 1974, une cartouche de la Version 4 fut livrée et un étudiant nommé Keith Standiford l'installa.

Bien que Ken Thompson, installé à Purdue, ne fût pas impliqué dans l'installation réalisée à Berkeley ainsi qu'il l'avait été pour la plupart des systèmes fonctionnant à cette époque, son expertise s'est rapidement avérée nécessaire pour déterminer les causes de plusieurs étranges plantages. Étant donné que Berkeley ne disposait que d'un modem acoustique à 300 bit/s dépourvu de système de décrochage automatique, Thompson devait téléphoner à Standiford dans la salle des machines, qui basculait la ligne sur le modem. De cette manière, Thompson déboguait à distance les traces des plantages depuis le New Jersey.

La plupart des plantages étaient provoqués parce que l'interface disque était incapable d'effectuer des déplacements avec chevauchement, contrairement à ce qu'indiquait la documentation. Ce PDP-11/45 a été l'une des premières machines soumises à Thompson pourvue de deux disques connectés à la même interface. La bonne volonté des chercheurs des laboratoires à partager leur travail avec Berkeley a permis l'amélioration rapide du logiciel.

Unix devint rapidement fiable et fonctionnel, mais le regroupement des départements d'informatique, de mathématiques et de statistique se heurta peu après à un problème car les deux derniers départements voulaient utiliser un système DEC RSTS. L'approche retenue après de nombreux débats laissait à chaque département un créneau horaire de huit heures :Unix fonctionnerait pendant huit heures, puis RSTS pendant seize heures. Pour des raisons d'équité, une rotation des tranches horaires fut mise en place. Unix fonctionnait donc de 8 heures à 16 heures un jour, de 16 heures à minuit le lendemain, et de minuit à 8 heure le jour suivant. En dépit de cette étrange approche les étudiants suivant les cours portant sur les systèmes d'exploitation préféraient mener leurs projets sous Unix plutôt qu'utiliser le système de traitement par lots.

Les professeurs Eugene Wong et Michael Stonebraker se sentaient particulièrement limités par l'environnement de traitement par lots. Leur projet de base de données Ingres fut l'un des premiers à adopter l'environnement interactif d'Unix en lieu et place de RSTS. Ils constatèrent vite que la faible durée du temps machine imparti à Unix et la rotation des créneaux d'exploitation du PDP-11/45 étaient intolérables. Ils achetèrent donc, au printemps 1974, un PDP-11/40 fonctionnant avec la nouvelle Version 5. Avec la première distribution d'Ingres à l'automne 1974, ce groupe est devenu le premier du département d'informatique à distribuer son logiciel. Plusieurs centaines de bandes Ingres furent expédiées aux cours des six années qui suivirent, établissant la réputation de Berkeley dans le secteur de la conception et de la réalisation de systèmes.

Même après que le projet Ingres ai renoncé à exploiter le PDP-11/45, le temps machine était toujours insuffisant pour les étudiants. Pour réduire les effets de cette pénurie, les professeurs Michael Stonebraker et Bob Fabry demandèrent, en juin 1974, deux PDP-11/45 destinés à améliorer l'enseignement délivré par le département d'informatique. Ils obtinrent le budget au début de l'année 1975. DEC annonça à peu près au même moment le modèle 11/70, une machine semblant beaucoup plus performante que la précédente. L'argent destiné aux PDP-11/45 fut groupé pour acheter une machine 11/70, livrée à l'automne 1975. Ken Thompson décida de prendre une année sabbatique en tant que professeur visiteur à l'université de Californie à Berkeley, revenant ainsi sur le lieu où il avait mené ses études à un moment qui coïncidait avec l'arrivée de cette machine. Thompson, avec l'aide de Jeff Schriebman et de Bob Kridle, installa la Version 6 sur la nouvelle machine 11/70.

À l'automne 1975, deux étudiants diplômés inconnus, Bill Joy et Chuck Haley, arrivèrent également. Ils manifestèrent immédiatement de l'intérêt pour ce nouveau système et travaillèrent tout d'abord sur un Pascal que Thompson avait bricolé alors qu'il se trouvait aux alentours de la salle machine du 11/70. Ils étendirent et améliorèrent l'interpréteur au point qu'il devint le langage de programmation système préféré des étudiants en raison de son excellent système de traitement d'erreurs et de sa vitesse de compilation et d'exécution.

Avec le remplacement des consoles texte Model 33 par des terminaux de type ADM-3, Joy et Haley commencèrent a souffrir des limites de l'éditeur ed. En travaillant à partir d'un éditeur appelé em, mis à disposition par le professeur George Coulouris de l'université Queen Mary de Londres, ils créèrent un éditeur ligne à ligne nommé ex.

Après le départ de Ken Thompson à la fin de l'été 1976, Joy et Haley commencèrent à explorer avec intérêt le cœur du noyau Unix. Sous les yeux observateurs de Schriebman, ils installèrent en premier les correctifs et améliorations fournies sur la cartouche « cinquante modifications » [1] fournie par les laboratoires Bell. Ayant appris à manipuler le code source, ils suggérèrent plusieurs petites améliorations destinées à lutter contre certaines limites du noyau.

Notes

[1]

N.d.T. : fifty changes.