4.3BSD

Les critiques portant sur 4.2BSD naquirent peu après sa publication. La plupart portaient sur la lenteur du système. Le problème était, sans grande surprise, que les nouvelles fonctionnalités avaient été ajoutées sans vraiment être optimisées et que trop de structures de données du noyau n'étaient pas vraiment adaptées à leur nouvelle utilisation. J'ai consacré la première année de mon activité sur ce projet à évaluer et fignoler le système, avec Karels.

Après deux années de travail d'optimisation du système et d'amélioration du code réseau nous avons annoncé, lors de la conférence Usenix de juin 1985, que nous espérions diffuser 4.3BSD pendant l'été. Toutefois, ce projet de diffusion fut rapidement stoppé par les gens de BBN. Ils mirent en évidence que nous n'avions jamais mis à jour 4.2BSD avec la version finale de leur code réseau. Au contraire, nous utilisions plutôt le prototype initial, très modifié, qu'ils nous avaient donné de nombreuses années auparavant. Ils se plaignirent à la DARPA que Berkeley devait implémenter l'interface alors que BBN était supposé implémenter le protocole et que Berkeley devait par conséquent remplacer le code TCP/IP de 4.3BSD par l'implémentation BBN.

Mike Karels reçut le code de BBN et effectua une évaluation du travail effectué depuis que le prototype avait été livré à Berkeley. Il décida que la meilleure chose à faire était d'incorporer les bonnes idées du code BBN dans le code Berkeley plutôt que de remplacer ce dernier, bien testé et contenant d'innombrables améliorations issues de la grande diffusion qu'avait connue 4.2BSD. Toutefois, sous la forme d'un compromis, il offrit d'inclure les deux implémentations dans la distribution 4.3BSD et de laisser le choix à l'utilisateur.

Après avoir reçu la proposition de Mike Karels, la DARPA décida que diffuser deux codes de base provoquerait obligatoirement des problèmes d'interopérabilité, et décida qu'une seule implémentation devait être diffusée. La DARPA donna ce code à Mike Muuse du laboratoire de recherche en balistique, considéré par toutes les parties comme un tiers indépendant, afin de le laisser isoler le code à utiliser. Après un mois d'évaluation, la conclusion du rapport fut que le code Berkeley était plus efficace mais que le code BBN gérait mieux les problèmes de congestion. Le point de rupture était que le code Berkeley répondait à tous les tests alors que le code BBN provoquait des « paniques » (erreurs fatales) dans certaines conditions de stress. La décision finale de la DARPA fut que 4.3BSD conserverait le code Berkeley de base.

Le système 4.3BSD particulièrement finalisé fut diffusé en juin 1986. Comme on s'y attendait, il fit taire la plupart des critiques concernant les performances, tout comme la version 4.1BSD avait éliminé les points douteux de 4BSD. Bien que la majorité des constructeurs avaient commencé à rebasculer vers System V, de grosses parties de 4.3BSD se trouvaient dans leurs systèmes, en particulier pour le sous-système réseau.

En octobre 1986, Keith Bostic rejoignit le CSRG. L'une des conditions associées à son embauche était qu'il soit autorisé à terminer un projet de portage de 4.3BSD sur le PDP-11, commencé durant son précédent emploi. Karels et l'auteur tenaient pour impossible de porter un système jaugeant 250 Ko sur un VAX de sorte qu'il tienne dans l'espace d'adressage de 64 Ko du PDP-11, et nous avons donc accepté que Bostic termine ses tentatives. À notre grand étonnement le portage fonctionna, en utilisant un ensemble complexe dde recouvrements (overlays) et d'états du processeur auxiliaire. Le résultat fut la version 2.11BSD réalisée par Casey Leedom et Bostic, qui est toujours utilisée sur certains des derniers PDP-11 encore en production en 1998.

Dans le même temps, il devint de plus en plus évident que l'architecture VAX atteignait ses limites et qu'il était temps de considérer d'autres machines pour y faire fonctionner BSD. Computer Console Inc. proposait une nouvelle architecture prometteuse, appelée Power 6/32. Elle s'éteignit malheureusement lorsque la société décida de changer de stratégie. Toutefois, ils avaient déjà fourni au CSRG plusieurs machines grâce auxquelles nous avons terminé le travail, commencé par Bill Joy, qui consistait à isoler dans le noyau BSD les parties dépendantes de la machine de celles qui ne l'étaient pas. La version 4.3BSD-Tahoe naquit ainsi en juin 1988. Le nom « Tahoe » provient du nom de projet utilisé par Computer Consoles Incorporated, pour la machine qu'ils pensaient diffuser avec le Power 6/32. Bien que la durée de vie de la machine Power 6/32 fut courte, les modifications opérées dans le noyau afin d'isoler les parties dépendantes de la machine s'avérèrent extrêmement utiles lors du portage de BSD sur bon nombre d'autres architectures.