4. BSD en Linux vergelijken

Wat is nou echt het verschil tussen bijvoorbeeld Debian Linux en FreeBSD? Voor de gemiddelde gebruiker is het verschil verrassend klein: beiden zijn UNIX®-achtige besturingssystemen. Beiden worden ontwikkeld door niet-commerciële projecten (dit geldt uiteraard niet voor vele andere distributies van Linux). In de volgende sectie wordt BSD bekeken en vergeleken met Linux. De beschrijving is het beste van toepassing op FreeBSD, dat een geschatte 80% van alle BSD-installaties voor rekening neemt, maar de verschillen van NetBSD, OpenBSD, en DragonFlyBSD zijn klein.

4.1. Wie bezit BSD?

Geen enkel persoon of bedrijf bezit BSD. Het wordt ontwikkeld en verspreid door een gemeenschap van zeer technische en toegewijde wereldwijde contribuanten. Sommige onderdelen van BSD zijn open-source projecten op zichzelf en worden beheerd door verschillende projectbeheerders.

4.2. Hoe wordt BSD ontwikkeld en bijgewerkt?

De BSD-kernels worden ontwikkeld en bijgewerkt volgens het Open Source ontwikkelmodel. Elk project beheerst een publiek toegankelijke broncodeboom onder het Concurrent Versions System (CVS), wat alle bronbestanden voor het project bevat, inclusief documentatie en andere toevallige bestanden. CVS stelt gebruikers in staat om een “check out” te doen (met andere woorden, om een kopie te maken) van elke gewenste versie van het systeem.

Een grote groep van wereldwijde ontwikkelaars dragen bij aan verbeteringen aan BSD. Ze zijn verdeeld in drie soorten:

Deze opstelling verschilt in een aantal opzichten van die van Linux:

  1. Geen enkel persoon heerst over de inhoud van het systeem. In de praktijk is dit verschil overdreven, aangezien de Principal Architect kan eisen dat code gebacked-out wordt, en zelfs in het Linux-project mogen meerdere mensen veranderingen maken.

  2. Van de andere kant is er een centraal repository, een enkele plaats waar u de gehele broncode van het besturingssysteem kunt vinden, inclusief alle oudere versies.

  3. BSD-projecten beheren het gehele “Besturingssysteem”, niet alleen de kernel. Dit onderscheid is slechts van beperkt nut: noch BSD noch Linux is nuttig zonder applicaties. De applicaties die onder BSD gebruikt worden zijn vaak dezelfde als de applicaties die onder Linux gebruikt worden.

  4. Een gevolg van het formele beheer van een enkele CVS- broncodeboom is dat de BSD-ontwikkeling helder is, en dat het mogelijk is om elke versie van het systeem aan de hand van het uitgavenummer of datum te benaderen. CVS staat ook incrementele wijzigingen aan het systeem toe: het repository van FreeBSD bijvoorbeeld wordt ongeveer 100 keer per dag bijgewerkt. De meeste van deze veranderingen zijn klein.

4.3. BSD-uitgaven

FreeBSD, NetBSD, en OpenBSD bieden het systeem in drie verschillende “uitgaven” aan. Net als bij Linux worden aan uitgaven nummers zoals 1.4.1 of 3.5 toegekend. Als aanvulling heeft het versienummer een achtervoegsel die het doel aangeeft:

  1. De ontwikkelversie van het systeem wordt CURRENT genoemd. FreeBSD kent een nummer aan CURRENT toe, bijvoorbeeld FreeBSD 5.0-CURRENT. NetBSD hanteert een lichtelijk ander schema voor de naamgeving en voegt een achtervoegsel van een enkele letter toe welke veranderingen aan de interne interfaces aangeeft, bijvoorbeeld NetBSD 1.4.3G. OpenBSD kent geen nummer toe (“OpenBSD-current”). Alle nieuwe ontwikkelingen aan het systeem komen in deze tak terecht.

  2. De projecten brengen met regelmatige tussenpozen, tussen twee en vier keer per jaar, een RELEASE-versie van het systeem uit, welke beschikbaar is op CD-ROM en vrij te downloaden is van FTP-sites, bijvoorbeeld OpenBSD 2.6-RELEASE of NetBSD 1.4-RELEASE. De RELEASE-versie is bedoeld voor eindgebruikers en is de normale versie van het systeem. NetBSD biedt ook patch-uitgaven aan met een derde cijfer, bijvoorbeeld NetBSD 1.4.2.

  3. Wanneer er bugs in een RELEASE-versie worden gevonden, worden ze gemaakt, en worden de reparaties toegevoegd aan de CVS-boom. In FreeBSD wordt de resulterende versie de STABLE-versie genoemd, terwijl het in NetBSD en OpenBSD de RELEASE-versie blijft heten. Kleinere nieuwe eigenschappen kunnen ook aan deze tak worden toegevoegd na een testperiode in de CURRENT-tak.

In contrast hiermee onderhoudt Linux twee gescheiden codebomen: de stabiele versie en de ontwikkelversie. Stabiele versies hebben een even klein versienummer, zoals 2.0, 2.2, of 2.4. Ontwikkelversies hebben een oneven klein versienummer, zoals 2.1, 2.3, of 2.5. In alle gevallen wordt het nummer gevolgd door een nog een nummer dat de exacte uitgave aangeeft. Verder voegt elke verkoper zijn eigen gebruikersprogramma's en gereedschappen toe, dus is de naam van de distributie ook belangrijk. Elke verkoper van distributies kent ook versienummers aan de distributie toe, dus kan een volledige omschrijving iets zijn als “TurboLinux 6.0 met kernel 2.2.14” zijn.

4.4. Welke versies van BSD zijn beschikbaar?

In tegenstelling tot de vele Linux-distributies, zijn er slechts vier grote open-source BSDs. Elk BSD-project beheert zijn eigen broncodeboom en zijn eigen kernel. In de praktijk schijnt er echter minder divergentie te zijn tussen de gebruikerscode van de projecten dan dat er in Linux is.

Het is moeilijk om de doelen van elk project te categoriseren: de verschillen zijn erg subjectief. Het volgende geldt ongeveer:

Er zijn ook twee aanvullende BSD UNIX besturingssystemen die niet open-source zijn, BSD/OS en Mac OS® X van Apple:

4.5. Hoe verschilt de BSD-licentie van de licentie van GNU Public?

Linux is beschikbaar onder de GNU General Public License (GPL), welke ontwikkeld is om closed-source software te elimineren. In het bijzonder moet elk afgeleid werk van een product dat onder de GPL is vrijgegeven ook met de broncode geleverd worden indien dat gevraagd wordt. In tegenstelling hiermee is de BSD-licentie minder beperkend: distributies met alleen binairen zijn toegestaan. Dit is in het bijzonder aantrekkelijk voor embedded applicaties.

4.6. Wat moet ik nog meer weten?

Aangezien er minder applicaties beschikbaar zijn voor BSD dan voor Linux, hebben de ontwikkelaars van BSD een Linux-compatibiliteitspakket ontwikkeld, wat het mogelijk maakt om Linux-programma's onder BSD te draaien. Het pakket bevat zowel kernelwijzigingen, om Linux-systeemaanroepen correct uit te voeren, en Linux-compatibiliteitsbestanden zoals de C-bibliotheek. Er is geen merkbaar verschil in uitvoersnelheid tussen een Linux-applicatie die op een Linux-machine draait en een Linux-applicatie die op een BSD-machine die dezelfde snelheid heeft draait.

De “alles van één leverancier”-natuur van BSD dat upgrades veel makkelijker af te handelen zijn dan dat vaak met Linux het geval is. BSD handelt upgrades aan bibliotheekversies af door compatibiliteitsmodulen voor eerdere bibliotheekversies aan te bieden, dus is het mogelijk om binairen die enige jaren oud zijn zonder problemen te draaien.

4.7. Wat zou ik moeten gebruiken, BSD of Linux?

Wat betekent dit allemaal in de praktijk? Wie zou BSD moeten gebruiken, en wie Linux?

Dit is een erg moeilijke vraag om te beantwoorden. Hier zijn wat richtlijnen:

4.8. Wie biedt ondersteuning, diensten, en training voor BSD aan?

BSDi / FreeBSD Mall, Inc. bieden sinds bijna een decennium ondersteuningscontracten aan voor FreeBSD.

Verder heeft elk project een lijst van huurbare consultants: FreeBSD, NetBSD, en OpenBSD.

Deze en andere documenten kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Lees voor vragen over FreeBSD de documentatie alvorens contact te zoeken <questions@FreeBSD.org>.
Vragen over deze documentatie kunnen per e-mail naar <doc@FreeBSD.org>.