Unix VAX

Au début de l'année 1978, le professeur Richard Fateman chercha une machine offrant un espace d'adressage plus important afin de poursuivre son projet Macsyma (commencé sur un PDP-10). La nouvelle machine VAX-11/780 répondait à ses besoins et convenait à son budget. Fateman et treize autres membres de l'université rédigèrent une proposition NSF qu'ils combinèrent avec certains financements départementaux afin d'acheter un VAX.

Le VAX utilisa tout d'abord le système VMS de DEC, mais le département était désormais habitué à l'environnement Unix et souhaitait poursuivre dans cette voie. Donc, peu après l'arrivée de cette nouvelle machine, Fateman obtint un exemplaire du port 32/V d'Unix VAX réalisé par John Reiser et Tom London aux laboratoires Bell.

Le 32/V offrait un environnement Unix Version 7 mais ne tirait pas profit des capacités de gestion de la mémoire virtuelle du matériel VAX. Comme ses prédécesseurs sur le PDP-11, il s'agissait d'un système chargeant en mémoire vive de toutes les zones mémoire d'un processus actif (swap-based system). Pour le groupe Macsyma de Berkeley, le manque de mémoire virtuelle signifiait que l'espace d'adressage d'un processus était limité par la taille de la mémoire physique, d'un Mo sur le nouveau VAX.

Pour résoudre ce problème, Fateman contacta le professeur Domenico Ferrari, qui s'occupait de système à Berkeley, et lui demanda si son groupe pouvait développer un système de mémoire virtuelle pour Unix. Ozalp Babaoglu, l'un des étudiants de Ferrari, se mit à chercher une manière d'implémenter un système de pagination sur le VAX. Sa tâche n'était pas facile car cette machine n'utilisait pas de bit de référence.

Lorsque Babaoglu fut proche de la première implémentation, il contacta Bill Joy pour obtenir quelques explications sur les méandres du noyau Unix. Intrigué par l'approche de Babaoglu, Joy l'aida à intégrer le code sur le 32/V et à le déboguer.

Malheureusement, Berkeley n'avait qu'une seule machine VAX pour le développement système et la production. Donc, pendant les quelques semaines des vacances de Noël, la communauté tolérante des utilisateurs d'Unix se retrouva de façon aléatoire sous 32/V et sous Virtual VAX/Unix. Fréquemment, leurs programmes fonctionnant sur le premier système se trouvaient arrêtés de façon brutale, et quelques minutes plus tard, les utilisateurs se retrouvaient avec la bannière de connexion du 32/V. En Janvier 1979, la plupart des bogues avaient été corrigées et le 32/V releva dès lors du passé.

Joy perçut que le VAX 32 bits rendrait bientôt le PDP-11 16 bits obsolète et commença à porter la version 2BSD sur le VAX. Pendant que Peter Kessler et moi portions le système Pascal, Joy portait les éditeurs ex et vi, le shell C et la myriade d'autres plus petits programmes provenant de la distribution 2BSD. À la fin de l'année 1979, une distribution complète était prête. Cette distribution incluait le noyau gérant la mémoire virtuelle, les utilitaires 32/V standards et les ajouts provenant de 2BSD. En décembre 1979, Joy diffusa près de cent exemplaires de 3BSD, la première distribution VAX de Berkeley.

32/V fut la dernière version provenant des laboratoires Bell. Les versions ultérieures d'Unix diffusées par AT&T, tout d'abord System III et plus tard System V, furent gérées par un groupe différent qui mit l'accent sur des diffusions commerciales stables. Avec la commercialisation d'Unix, les chercheurs des laboratoires Bell n'étaient plus capables d'agir comme la « maison propre » de la recherche Unix. Comme la communauté de chercheurs continuait à modifier le système Unix, il s'avéra qu'elle avait besoin d'une organisation capable de produire des versions des travaux de recherche. Berkeley, en raison de son implication dans le développement d'Unix et d'outils compatibles, a rapidement endossé le rôle joué auparavant par les laboratoires Bell.