Gefeliciteerd! Op 21 juni vierde FreeBSD zijn twintigste verjaardag. Drie maanden eerder was NetBSD ook al de status van tiener ontgroeid. Ter gelegenheid van dit heugelijke feit gaan we in deze BSD Hoek terug naar de vroege dagen van BSD en 386BSD!

In de geschiedenis van BSD wordt vaak de rechtszaak tussen AT&T en de Amerikaanse universiteit Berkeley over intellectueel eigendom breed uitgelicht. BSDI, een uit Berkeley voortgekomen bedrijf, opende het telefoonnummer 1-800-ITS-UNIX en haalde zich daarmee de woede van het toentertijd almachtige AT&T, eigenaar van Unix, op de hals. Volgens sommigen is die rechtszaak, en de onzekerheid over de toekomst van BSD die het opleverde, de reden dat Linux ‘de strijd heeft gewonnen’ van BSD. Het feit dat de uitkomst van de rechtszaak (min of meer in het voordeel van Berkeley) van zulk groot belang was voor het voortbestaan van de open source-gemeenschap, zorgt er waarschijnlijk voor dat de rest van de geschiedenis van BSD vaak enigszins onderbelicht blijft. Toch is de voorgeschiedenis juist uitermate interessant, al is het alleen maar omdat de gemeenschappelijke voorouder van zowel FreeBSD als NetBSD dateert van vóór het juridische schisma, in de vorm van 386BSD.

Bill Joy
Je zou kunnen zeggen dat BSD eigenlijk zelfs zijn 35e verjaardag viert, want de geschiedenis van BSD begint in 1978. Bill Joy, student aan Berkeley, begon in dat jaar met het samenstellen van een verzameling software: de Berkeley Software Distribution. Unix werd in die tijd samen met de broncode geleverd, waardoor het makkelijk was om uitbreidingen en aanpassingen door te voeren. Joy schreef onder andere een  tekstverwerker (ex, de voorganger van vi) en een Pascal-compiler, die werden gebundeld in de eerste BSD. 1BSD, zoals die verzameling heette, was bepaald geen besturingssysteem: het was slechts een gratis verzameling software bovenop Unix. In daaropvolgende releases werd die verzameling steeds uitgebreider en werden steeds meer mensen afhankelijk van de software afkomstig van de Californische universiteit. Veel bedrijven en organisaties die een Unix-licentie kochten, plaatsten daar meteen BSD bovenop.

Vanwege de toenemende kwaliteit en populariteit van het systeem werd het door DARPA, de organisatie die onderzoek financiert voor het Amerikaanse leger, verkozen als basisplatform voor de ontwikkeling van een nieuw soort netwerktechnologie, het ARPANET InterNetwork (jawel, het uiteindelijke internet). Berkeley sleepte samen met het bedrijf BBN een contract binnen voor de ontwikkeling van 4BSD, volgens enkele richtlijnen van DARPA. De nieuwe richtlijnen resulteerden in de ontwikkeling van een TCP/IP-implementatie door Bill Joy en een nieuw filesystem door Kirk Marshall McKusick. Van de 4.2BSD-release, met voor het eerst de netwerkstack en het filesystem, werden meer dan duizend licenties verkocht, meer dan de originele Unix, het System V van AT&T.

Nadat Bill Joy uit Berkeley vertrok om medeoprichter van Sun Microsystems te worden, nam McKusick het voortouw in de ontwikkeling van 4.3BSD. Toen de nieuwe release bijna klaar was, ontstond er een conflict met BBN over de status van de TCP/IP-code. Joy had hele stukken code herschreven, waarmee Berkeley en BBN afwijkende implementaties hadden. DARPA koos voor een onafhankelijke evaluatie van de twee implementaties en besloot dat de implementatie van BSD superieur was. De TCP/IP-stack van BSD werd verkozen tot de standaard en tot op de dag van vandaag is de netwerkstack van bijna elk besturingssysteem gebaseerd op de oorspronkelijke BSD-implementatie. Het hele 4.3BSD-systeem (250 Kilobytes groot) is in 2006 door het tijdschrift Information Week uitgeroepen tot ‘The single Greatest Piece of Software Ever, with the broadest impact on the world’, met als reden dat 4.3BSD het grootste theoretische fundament is waar het hele hedendaagse internet op is gebouwd.

Personal computers
In de jaren na 4.3BSD werd het duidelijk dat de verspreiding van BSD werd belemmerd doordat gebruikers altijd eerst een Unix-licentie van AT&T moesten aanschaffen voordat ze BSD-broncode konden gebruiken. Om minder afhankelijk te zijn van Unix werden grote gedeeltes van de code herschreven en vrijgegeven onder een nieuwe, liberale, licentie: de BSD-licentie. Na verloop van tijd bleven er nog maar zes bestanden over die onder de AT&T-licentie vielen. Bill Jolitz, student aan Berkeley, besloot daarop om samen met zijn vrouw Lynne ook de laatste zes bestanden te herschrijven en die daarmee bij de BSD-licentie onder te brengen. 

Rond diezelfde tijd werd duidelijk dat VAX, het oorspronkelijke platform waarvoor BSD was ontwikkeld, plaats zou gaan maken voor de personal computer als belangrijkste platform. Jolitz was al een tijdje bezig met het porten van BSD naar de 386, de meest recente versie van Intels pc-architectuur. Hij voegde de nieuwe zes bestanden onder de BSD-licentie samen met zijn naar x86-geporte BSD-code en zo ontstond het eerste complete BSD-besturingssysteem. Jolitz neigde oorspronkelijk naar de naam Jolix voor zijn systeem, maar opteerde uiteindelijk voor 386BSD.

FreeBSD en NetBSD
Met Bill Jolitz als grote aanstichter van BSD als zelfstandig en volwaardig besturingssysteem leek BSD een gouden toekomst tegemoet te gaan. Het bedrijf BSDI werd opgericht om BSD te commercialiseren en veroorzaakte de uiteindelijke rechtszaak die roet in het eten gooide. Jolitz was betrokken bij de oprichting van dat bedrijf, maar stapte er nog voor de rechtszaak uit, omdat hij vond dat BSD open source moest blijven. In maart 1992 werd 386BSD 0.0 vrijgegeven, kort daarop gevolgd door de meer bruikbare 0.1-versie. De ervaringen die Bill en Lynne hadden opgedaan bij het schrijven van de code, deelden ze in een achttiendelige serie artikelen in het gezaghebbende Dr. Dobbs Journal onder de titel ‘Porting Unix to the 386’.

Er was echter ook een hoop mis met 386BSD, waardoor er al snel een hoop patches beschikbaar kwamen die verscheidene grote en minder grote bugs verhielpen. Om onduidelijke redenen, waarschijnlijk omdat ze het te druk met andere zaken hadden, waren Bill en Lynne erg langzaam met het opnemen van de patches in een nieuwe release van 386BSD. De verzameling patches, na een tijdje bekend als the patchkit, groeide en groeide zonder dat ze werd opgenomen in het basissysteem. Er ontstond ruzie over wat er met de patches moest worden gedaan en de Jolitzes kregen al snel de zwarte piet toegeschoven. De makers van de patchkit besloten dat ze er genoeg van hadden en richtten FreeBSD op. Een andere groep 386BSD-gebruikers had kort daarvoor al het NetBSD-project aangekondigd, om 386BSD weer te verenigen met eerdere BSD-releases voor niet-x86 architecturen. De splitsing van BSD was een feit en BSD zoals we het kennen ontstond dus vanuit 386BSD, misschien wel dankzij het gebrek aan leiderschap bij Jolitz.

386BSD
Wat er zich precies heeft afgespeeld in die tijd, zullen we waarschijnlijk nooit te weten komen, maar de Jolitzes komen er niet goed vanaf in de hertelling vanuit zowel FreeBSD als NetBSD. Klaarblijkelijk zint dat ze zelf ook niet, want op twee door hen opgerichte websites (jolix.com en 386bsd.org) valt te lezen over hun perspectief, waarbij het duidelijk wordt dat ze naar eigen mening te weinig krediet hebben gekregen voor de geboorte van BSD als modern open source-besturingssysteem. Ze laten het klinken alsof het weinig had gescheeld of dit tijdschrijft had Jolix Magazine in plaats van Linux Magazine geheten, wat wellicht wat overdreven is, maar misschien hebben ze wel een punt. Op de twee websites vinden we naast de wat polemisch geschreven teksten een schat aan informatie, waaronder de oorspronkelijke Dr. Dobbs-artikelen, waarin de Jolitzes tot in detail vertellen over het x86/platform en de aanpassingen aan de code die nodig waren om BSD werkend te krijgen. De Dr. Dobbs-serie leidde tot een 1.0-release, maar toen was het al te laat.

De gemeenschappelijke voorouder van de huidige BSD’s is dus 386BSD versie 0.1. Het internet vergeet nooit, en de code van de verschillende releases is nog gewoon op te sporen. Op freebsd.org is zelfs nog een ISO-bestand te downloaden, waarbij moet worden gezegd dat het behoorlijk lastig is om het werkend te krijgen. Gelukkig voor ons (tenminste als we toegang hebben tot een Windows-pc) is er iemand zo vrij geweest om 386BSD0.1 via QEMU-emulatiesoftware in Windows beschikbaar te maken, zodat we met een paar klikken meer dan twintig jaar terug in de tijd kunnen gaan. Eigenlijk is er in al die jaren een stuk minder veranderd dan je zou verwachten, zoals je ziet in de afbeelding bij dit artikel.

Links 

BSD voor Windows executables
http://sourceforge.net/projects/bsd42/files/4BSD%20under%20Windows/v0.4

Website Jolitzes
www.jolix.com

386BSD-website
www.386bsd.org