La naissance de BSD, l'Unix de l'Université de Californie à Berkeley et son ascension
Résumé Chronologique des BSD UNIX de Berkeley
Arrivé de l'Unix des Bell Labs à l'UCB
À 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.
1BSD
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).
2BSD
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.
3BSD
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).
2.79BSD
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.
4BSD
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).
4.1BSD
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.
2.8BSD
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
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.
2.9BSD
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.
4.2BSD
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.
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
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.
2.10BSD
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
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.
Networking Release 1
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
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
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.
2.11BSD
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 correctif n° 481
a été publié le 28 avril 2023.
é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.
BSD Unix hors de l'UCB pour le Processeur Intel 80386
386BSD
À 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.
BSD/386
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.
Le Procès contre BSDi et l'UCB
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.
procès
, n'empêcha pas le CSRG de continuer le développement
de 4.4BSD.
Derniers BSD Unix de l'UCB dépourvus de tout Code Source de AT&T
4.4BSD-Alpha puis 4.4BSD et 4.4BSD-Encumbered
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
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
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.
Anicens OS basé sur BSD UNIX hors UCB
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.
Résumé des BSD Libres Actuels basé sur 4.4BSD
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 à totalementmigré
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
. Ceprojet
est la continuation logique de FreeBSD 4. Le système à biendivergé
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).
libre
(le système de base Darwin) mais tous les logiciels spécifiques à Apple (comme iTunes) ne le sont pas.