wiki:histoire_informatique:bsd_unix_anciens

La naissance de BSD, l'Unix de l'Université de Californie à Berkeley et son ascension

Logo de BSD UNIX du CSRG :

À demande du professeur d'informatique Bob Fabry, l’Université de Californie à Berkeley (UCB) à acheter un PDP-11/45 de l'entreprise DEC (Digital Equipment Corporation) et à acquis pour une somme modique une licence Unix (Unix version 5) en 1974. Grâce à l'argent du projet de base de données Ingres, un ans plus tard, l'UCB a été acheté un PDP-11/70 de plus grande taille. En 1975, Ken Thompson a pris un congé sabbatique des Bell Labs et est venu à Berkeley en tant que professeur invité. Il a aidé à installer Unix version 6 et a commencé à travailler sur une implémentation du langage de programmation Pascal pour le système. Les étudiants diplômés Chuck Haley et Bill Joy ont amélioré le Pascal de Thompson et implémenté un éditeur de texte amélioré, ex. D'autres universités ont eu un vif intérêt pour les logiciels de Berkeley.

Bill Joy a commencé à compiler la première distribution BSD (Berkeley Software Distribution) appelée 1BSD, qui fut publiée le 9 mars 1978. 1BSD n'était pas une distribution Unix complète mais simplement un ensemble de logiciels pour Unix version 6 contenant un compilateur de Pascal amélioré et un éditeur de texte nommé ex (l'ancêtre de vi).

La distribution 2BSD a été publiée en mai 1979, elle comprenait des mises à jour des logiciels de 1BSD en particulier une amélioration du compilateur de Pascal et de nouveaux logiciels, en autres deux logiciels développés par Joy, l'éditeur de texte vi (une version visuelle de ex) et le C shell (shell unix utilisant une syntaxe plus proche du langage C et bénéficiant d'un historique de commandes), puis la bibliothèque et base de données Termcap (terminal capability). 2.xBSD est la branche spécifique au mini-ordinateur DEC PDP-11, elle se termina par la version 2.11BSD qui reçoit encore à l'heure actuelle des correctifs de sécurité. Le dernier correctif de sécurité (482) est paru le 27 septembre 2024.

En 1978, un ordinateur DEC VAX a été installé à Berkeley mais le seul Unix disponible pour cette architecture était UNIX/32V des Bell Labs qui ne supportait pas les fonctionnalités de mémoire virtuelle offerte par le VAX, c'est une des raisons pour laquelle l'UCB à développé 3BSD en fin d'année 1979 et crée un nouveau noyau basé sur celui de 32V, réécrit en grande partie par Özalp Babaoğlu (étudiant diplômé de Berkeley) qui inclue une implémentation de mémoire virtuelle, les utilitaires de 2BSD portés sur le VAX et les utilitaires standards de 32V. 3BSD est la première version de BSD à être un système d'exploitation complet et non plus quelques logiciels pour agrémenter une version d'Unix. 3BSD était également appelé Virtual VAX/UNIX ou VMUNIX (pour Virtual Memory Unix) et les images du noyau BSD ont été appelées /vmunix au lieu de /unix sur l'Unix des Bell Labs, se nom donné au noyau à perdurer jusqu'à la dernière version de BSD (4.4BSD).

En parallèle 2.79BSD basé sur Unix verion 7 et avec des utilitaires de 3BSD est sorti en avril 1980. C'était une distribution de logiciels spécifique au PDP-11.

En 1979, la DARPA (Defense Advanced Research Projects Agency) souhaitait unifier les systèmes d'exploitation utilisés par les centres américains de recherche en informatique connectés au DARPAnet. C'est à ce moment que Berkeley proposa à la DARPA de développer une version améliorée de 3BSD pour résoudre se problème. En conséquence, 4BSD fut crée en novembre 1980, comprenant les utilitaires de 3BSD et supportait les VAX les plus récents, un nouveau système de courrier électronique (Delivermail), un interpréteur de LISP, le contrôle des tâches du C shell (csh), les signaux fiables et la bibliothèque de programmation Curses. La plupart des organisations achetaient une licence 32V pour pouvoir commander 4BSD sans même se soucier d'obtenir une bande 32V. C'est également après l'accord passé avec la DARPA que le professeur Bob Fabry créa le Computer Systems Research Group (CSRG).

4BSD est une version qui a été jugée trop lente par rapport à l'OS VMS (Virtual Memory System) de DEC et qui de se fait a été rapidement remplacée par 4.1BSD paru en juin 1981, pour répondre au critique de 4BSD. Le noyau de 4.1BSD a été systématiquement mis au point par Bill Joy jusqu'à ce qu'il puisse fonctionner aussi bien que VMS sur plusieurs benchmarks. À la base 4.1BSD devait s'appeler 5BSD mais suite aux objections de AT&T le nom a été modifié pour 4.1BSD pour éviter toutes confusions avec l'UNIX System V de AT&T.

Coté PDP-11, 2.8BSD paru en juillet 1981, toujours basé sur la V7 avec des apports de 4.1BSD.

Entre 4.1BSD et 4.2BSD il y eu trois versions bêta intermédiaires: 4.1aBSD, qui incorporait une version modifiée de l'implémentation préliminaire de TCP/IP de BBN (Bolt, Beranek and Newman); puis 4.1bBSD en juin 1982, qui incluait un nouveau système de Fichiers du nom de Berkeley Fast File System, implémenté par Marshall Kirk McKusick; et 4.1cBSD en avril 1983 était une version intermédiaire au cours des derniers mois du développement de 4.2BSD. À noter que 4.1cBSD a été le système de base de Unix version 8 des Bell Labs.

En 1983, avant la sorti de 4.2BSD paru 2.9BSD qui était un portage logiciel indirect de 4.1BSD, le noyau utilise une série complexe d'overlays pour s'adapter au PDP-11. Contrairement aux versions précédentes de BSD pour le PDP-11, cest la première version de la branche 2.xBSD à être un système d'exploitation complet qui ne repose pas sur une installation préalable de la V6 ou V7 des Bell Labs.

Logo de 4.2BSD : Pour guider la conception de 4.2BSD, Duane Adams de DARPA a crée un comité composé de Bob Fabry, Bill Joy et Sam Leffler de l'UCB, Alan Nemeth et Rob Gurwitz de BBN, Dennis Ritchie de Bell Labs, Keith Lantz de Stanford, Rick Rashid de Carnegie Mellon, Bert Halstead du MIT, Dan Lynch de l'ISI et Gerald J. Popek de l'UCLA. Ce comité s'est réuni d'avril 1981 à juin 1983. À noter que Bill Joy à quitter le CSRG de l'UCB pour rejoindre l' entreprise Sun Microsystems. C'est en août 1983 que la version officielle de 4.2BSD vu le jour, elle incluait la pile TCP/IP de Berkeley conçu par Bill Joy et non pas celle de BBN, le nouveau système de fichiers Berkeley Fast File System (FFS); et incluait également plusieurs fonctionnalités de contributeurs externes, notamment les quotas de disque et le contrôle des tâches. Cette version de BSD intégrait tellement d' améliorations, de nouvelles fonctionnalités,qu'elle devint extrêmement populaire, de sorte que beaucoup d' utilisateurs de UNIX System V migrèrent vers 4.2BSD, surtout pour la pile TCP/IP qui n'existait pas chez l'Unix d'AT&T dans l'attente que celle-ci y soit intégrée. Les commandes Unix en rapport à la nouvelle pile TCP/IP de Berkeley, incluait en autres, ifconfig pour la gestion des cartes réseaux, route pour voir et modifier la table de routage, netstat qui permet de lister les ports de différent protocole réseau, client et serveur FTP (commande ftpd et ftpd), client et serveur TFTP (commande tftp et tftpd), client et serveur Telnet (commande telnet et telnetd), client et serveur Rlogin (commande rlogin et rlogind), client et serveur RSH (commande rsh et rshd), client Mail (commande mail) et tous les services en rapport à la pile TCP/IP hormis inetd qui a été seulement intégré à partir de 4.3BSD.

4.2BSD est la première version de BSD UNIX a intégré tous les composants nécessaires pour gérer une pile TCP/IP ! 4.2BSD est le tout premier système d'exploitation à avoir une pile TCP/IP complète et opérationnelle (tous OS confondus et pas seulement les système UNIX) ! En gros tous les OS de nos jours ont une pile TCP/IP qui c'est originellement basée sur celle de BSD du CSRG, c'est pour ainsi dire les fondements de l'Internet tel q'on le connaît à l'heure actuelle !

4.3BSD a été publié en juin 1986, qui incluait une pile TCP/IP beaucoup plus mature, le système de fichiers FFS fut encore amélioré, et de nombreux correctifs de performances ont été intégrés. 4.3BSD est cité comme le meilleur logiciel jamais écrit et pour cause sa pile TCP/IP a été reprise par tous les Unix basé sur System V, les descendants de BSD, GNU/Linux, Microsoft Windows, et bien d'autres… L'internet tel qu'on le connait actuellement repose à l'origine sur le protocole et la pile TCP/IP de 4.3BSD.

En avril 1987 paru 2.10BSD, version élaborée par un un consortium du CSRG et de l' association USENIX qui était basé sur 4.3BSD adapté pour tous les modèles de PDP-11 avec une gestion de la mémoire. 2.10BSD implémentait les appels système BSD, inode, mémoire principale et mise en cache d'échange, la prise en charge de QBUS 22 bits, disque RAM, pilote de périphérique MSCP ( UDA50, KLESI, etc.), l'espace utilisateur de 4.3BSD (bibliothèques et applications). La seule ombre au tableau est que 2.10BSD ne supportait pas encore la mise en réseau.

4.3BSD-Tahoe fut publié en juin 1988, c'est une version par rapport à 4.3BSD qui mettait l'accent sur la portabilité de son code source, ce qui conduit à une séparation du code dépendant de la machine et indépendant de la machine dans BSD, qui améliorait considérablement la portabilité du système. Ce qui a poussé le CSRG à creer 4.3BSD-Tahoe est le fait que BSD voulait s'éloigner de la plateforme vieillissante VAX et utiliser à la place la plateforme Power 6/32 (nom de code « Tahoe ») développée par Computer Consoles Inc. qui semblait prometteuse à l'époque, mais a été malheureusement abandonnée par ses développeurs peu de temps après. Mais au final le portage de 4.3BSD-Tahoe a été très utile pour les versions ultérieures de BSD.

Jusque-là, toutes les versions de BSD avaient du code propriétaire AT&T Unix en son sein et étaient donc soumises à une licence logicielle AT&T. Les licences AT&T étaient devenus très coûteuses et plusieurs parties extérieures à l'UCB avaient exprimé un vif intérêt pour une version distincte du code réseau qui avait été exclusivement développée par le CSRG et ne contenait donc aucun code provenant de AT&T. Ce qui a motivé le CSRG à publier Networking Release 1 (4.3BSD Net/1) en juin 1989, qui a été mise à la disposition des non-titulaires de licence du code AT&T et était librement redistribuable selon les termes de la licence BSD. Net/1 était la première distribution BSD totalement libre au niveau du code source.

4.3BSD-Reno est sorti en juin 1990, c'était une version intermédiaire (déconseillée en production) au cours des premiers développements de 4.4BSD. Le nom Reno fait référence au centre de jeu de Reno du Nevada. 4.3BSD-Reno s'est explicitement orientée vers la conformité POSIX, parmi les nouvelles fonctionnalités figuraient une implémentation NFS (Network File System) de l'Université de Guelph, une touche d'état (“Ctrl-T”) et la prise en charge de la gamme d'ordinateurs HP9000, provenant du port HPBSD de l'Université de l'Utah.

Networking Release 2 (4.3BSD Net/2) a été publié en juin 1991, c'est le développeur Keith Bostic qui a proposé que davantage de code non AT&T du système BSD soit publié sous la même licence que Net/1, la license BSD. À cette fin tous les utilitaires standards d'Unix ont été réimplémentés (réécrit) en dix-huit mois sous licence BSD. Par exemple l'éditeur de texte vi qui était basé sur la version Unix originale de ed, a été réécrit en nvi (new vi). nvi est encore l'éditeur de texte par défaut de tous les descendants actuels de BSD Unix. Il a été déterminé qu'il y avait seulement six fichiers liés au noyau AT&T manquants, de se fait Net/2 était un système d'exploitation presque complet, librement distribuable étant sous licence BSD.

La dernière version pour PDP-11 est 2.11BSD et a été publié en février 1992, cette version ne fonctionne que sur les PDP-11 avec le mode Superviseur. 2.11BSD à la même base que 2.10BSD avec toutefois quelques mises à niveau. Par rapport à 2.10BSD, 2.11BSD apporte une prise en charge complète de la mise en réseau provenant de 4.3BSD en mode Superviseur, une prise en charge des noms de fichiers longs et les applications venant de 4.3BSD qui étaient manquantes dans 2.10BSD. 2.11BSD continue de recevoir des correctifs de sécurité, le dernier correctif481 a été publié le 28 avril 2023.

Tous les BSD UNIX de Berkeley sont émulables avec l'émulateur/simlateur SimH de Bob Supnik qui se trouve ici, vous avez même la possibilité de connecter 4.2BSD, 4.3BSD, 4.3BSD-Tahoe (via 4.3BSD Quasijarus) et 4.3BSD-Reno pour le VAX et 2.11BSD pour le PDP-11 à Internet en choisissant une version spécifique de SimH pour la mise en réseau. Il existe également une version de SimH nommé Open-SimH avec encore plus d'ordinateurs old school, par contre, il faut compiler l'émulateur.

À partir de Net/2, le couple Lynne et William Jolitz tous deux d'anciens élèves de Berkeley ont crées 386BSD basé sur 4.3BSD Net/2 spécifique à l'architecture Intel 80386 en créant en autres les six fichiers manquants au noyau BSD de 4.3BSD Net/2, 386BSD est sorti le 17 mars 1992. Plusieurs versions de 386BSD se sont succédées. 386BSD ne fonctionnait pas comme certains utilisateurs de se système le voulait, c'est pourquoi ils ont proposés des correctifs et des améliorations sous forme de patchkit mais le couple Jolitz n'était pas enclin à les appliquer à leur système, c'est pourquoi deux organisations externes se sont créées pour créer leur propre système d'exploitation tous deux basés à la base sur 386BSD. NetBSD a vu le jour en avril 1993 et FreeBSD en novembre 1993.

En parallèle de 386BSD est né BSD/386 en avril 1992 (renommé plus tard BSD/OS) de l' entreprise Berkeley Software Design, Inc (BSDi), c'était à la base un OS prévu pour fonctionner sur Intel 80386 (comme 386BSD). Derrière cette entreprise il y avait des membres très influents du CSRG et William Jolitz mais se dernier à vite déchanté quand il c'est rendu compte que le seul but de BSDi était de vendre son système d'exploitation, système propriétaire qui plus est. BSDi vendait son OS BSD/386 au prix de 995 $ US avec le code source soit beaucoup moins cher qu'une licence d'UNIX System V de AT&T.

En avril 1992, l'entreprise BSDi et Les régents de l'Université de Californie se sont rapidement retrouvé en procès juridique face à Unix System Laboratories (USL) pour la propriété intellectuelle liée au système d'exploitation Unix ce qui a provoqué une injonction sur la distribution de Net/2 jusqu'à ce que la validité des revendications de droits d'auteur d'USL sur le code source puisse être déterminée. Le procès dura deux ans ce qui freina considérablement le développement des logiciels libres descendants de BSD, affaire qui propulsa GNU/Linux qui était exempt de tous code source AT&T, les utilisateurs des systèmes BSD libres se sont tourné vers GNU/Linux, craignant d'avoir des ennuis à cause du procès. GNU/Linux prit un avantage qu'il a conservé depuis. En juillet 1993, Novell acheta USL de AT&T ce qui conduit à un règlement à l'amiable en 1994 avec BSDi et les régents de l'Université de Californie. Au final, sur les 18 000 fichiers de la distribution Net/2, seuls trois ont dû être supprimés et 70 modifiés pour afficher les mentions de droits d'auteur de l'USL. Une autre condition du règlement était que l'USL n'intenterait pas de nouvelles poursuites contre les utilisateurs et les distributeurs de la prochaine version 4.4BSD-Lite.

Il faut préciser que se procès, n'empêcha pas le CSRG de continuer le développement de 4.4BSD.

En août 1992, 4.4BSD-Alpha est sorti, puis le 1 juin 1993 c'est au tour de 4.4BSD et 4.4BSD-Encumbered de voir le jour. 4.4BSD-Encumbered a été publié uniquement pour les titulaires de licence USL car elle contenait du code source de AT&T.

4.4BSD-Lite Release 1 a été publié le 1er mars 1994, cette version était dépourvu de code AT&T, ne nécessitant donc plus de licence source USL et elle contenait de nombreux autres changements par rapport à la version originale 4.4BSD-Encumbered. C'est la première version totalement libre (open source) uniquement sous licence BSD.

4.4BSD-Lite Release 2 a été publié en juin 1995, c'est la dernière version développée par le CSRG, après quoi le CSRG à été dissous et le développement de BSD à Berkeley a cessé. Dès lors plusieurs variantes basées directement ou indirectement sur 4.4BSD-Lite sont encore maintenues, parmi les systèmes les plus courant on peut citer: FreeBSD, NetBSD, OpenBSD et DragonFly BSD.

Quelques anciens systèmes Unix étant basés sur BSD (les plus populaires): SunOS de Sun, Dynix de Sequent, NeXTSTEP (l'ancêtre de macOS) de NeXT, Ultrix de DEC et pour finir BSD/386 devenu BSD/OS (avec comme nouvelle base 4.4BSD-Lite) de BSDi puis de Wind River après le rachat de BSDi. Il ya eu également une entreprise produisant des BSD UNIX commercials du nom de mt Xinu, Inc.

Parmi les systèmes d'exploitation BSD libres (open source) en plein développement, les principaux système sont:

  • FreeBSD lancé en 1993 (quelques mois après NetBSD) était au départ basé sur 386BSD mais à partir de FreeBSD 2.0 le code de 386BSD a été remplacé par 4.4BSD-Lite puis FreeBSD 3.0 a prit comme base 4.4BSD-Lite 2.
  • NetBSD, premier dérivé de BSD lancé en 1993, était basé à l'origine sur 386BSD 0.1 et 4.3BSD Net/2. À partir de NetBSD 1.0 la base de code Net/2 a été remplacé par 4.4BSD-Lite, puis à la sortie de NetBSD 1.4 le système à totalement migré vers la base de code 4.4BSD-Lite 2.
  • OpenBSD est un dérivé de NetBSD 1.1 donc basé dès le départ sur 4.4BSD-Lite. La première version officielle est OpenBSD 2.0 publiée le 1er octobre 1996.
  • DragonFly BSD résulte d'un fork en 2003 de FreeBSD 4.8 mené par Matt Dillon, jugeant le nouveau système de threading et SMP (Symmetric multiprocessing) de FreeBSD 5 peu performant et difficile à maintenir. Ce projet est la continuation logique de FreeBSD 4. Le système à bien divergé de FreeBSD.
  • RetroBSD, un fork de 2.11BSD conçu pour fonctionner sur des microcontrôleurs tels que le PIC32.
  • LiteBSD, une variante de 4.4BSD Unix pour les microcontrôleurs PIC32MZ
  • macOS d'Apple (appelé initialement Mac OS X) s'est basé à l'origine sur Rhapsody qui était basé sur 4.4BSD, Rhapsody est un descendant de NeXTSTEP de NeXT qui était basé sur 4.3BSD (4.3BSD-Tahoe puis 4.3BSD-Reno). Acuellement macOS utilise les utilitaires standards d'Unix provenant de FreeBSD et utilise un noyau enrichi hybride du nom de XNU (basé sur le noyau Mach 3 et utilisant le noyau BSD de FreeBSD en tant que service du système d'exploitation).
macOS est partiellement libre (le système de base Darwin) mais tous les logiciels spécifiques à Apple (comme iTunes) ne le sont pas.
  • wiki/histoire_informatique/bsd_unix_anciens.txt
  • Dernière modification : 2025/01/13 11:25
  • de Thibault Seguin