Uitleg over BSD | ||
---|---|---|
Terug |
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.
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.
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:
Contributors schrijven code of documentatie. Ze hebben geen toestemming om direct naar de broncodeboom te committen (code toe te voegen). Om hun code aan het systeem toe te voegen, moet het herzien en ingecheckt worden door een geregistreerde ontwikkelaar, die een committer wordt genoemd.
Committers zijn ontwikkelaars met schrijftoegang tot de broncodeboom. Om committer te worden, moet een individu kennis en kunde laten zien in het gebied waarin hij actief is.
Het is aan de discretie van de individuele committer of hij instemming moet krijgen voordat er veranderingen naar de broncodeboom worden gecommit. In het algemeen mag een ervaren committer veranderingen maken waarvan duidelijk is dat ze correct zijn zonder hiervoor consensus te verkrijgen. Een committer van het documentatieproject bijvoorbeeld mag typografische of grammaticale fouten verbeteren zonder dat deze herzien worden. Van de andere kant wordt van ontwikkelaars die verreikende of gecompliceerde veranderingen maken verwacht dat ze hun veranderingen ter herziening insturen voordat ze deze committen. In het uiterste geval kan een lid van het coreteam met een functie als Principal Architect eisen dat de veranderingen uit de boom verwijderd worden, een proces dat bekend staat als backing out. Alle committers ontvangen email die elke individuele commit beschrijft, het is dus niet mogelijk om heimelijk te committen.
Het Coreteam. FreeBSD en NetBSD hebben elk een coreteam dat het project beheert. De coreteams zijn in de loop van de projecten ontstaan, en hun rol is niet altijd eenduidig gedefinieerd. Het is niet nodig om ontwikkelaar te zijn om lid te zijn van het coreteam, hoewel het normaal is. De regels voor het coreteam verschillen per project, maar in het algemeen hebben ze een grotere inspraak in de richting van het project dan niet-leden van het coreteam hebben.
Deze opstelling verschilt in een aantal opzichten van die van Linux:
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.
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.
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.
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.
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:
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.
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.
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.
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:
FreeBSD richt zich op hoge prestaties en gebruikersgemak voor eindgebruikers, en is een favoriet van aanbieders van webinhoud. Het draait op een aantal platformen, waaronder systemen die op de i386™ gebaseerd zijn (“PC's”), systemen die gebaseerd zijn op AMD 64-bit-processoren, systemen die op UltraSPARC® gebaseerd zijn, systemen die gebaseerd zijn op de Alpha-processoren van Compaq, en systemen die op de specificatie van NEC PC-98 gebaseerd zijn. Het FreeBSD-project heeft aanzienlijk meer gebruikers dan de andere projecten.
NetBSD gaat voor maximale portabiliteit: “of course it runs NetBSD”. Het draait op machines variërend van palmtops tot grote servers, en het is zelfs gebruikt in ruimtemissies van NASA. Het is een bijzonder goede keuze om op oude niet-Intel® hardware te draaien.
OpenBSD gaat voor beveiliging en code-puurheid: het gebruikt een combinatie van het open-source concept en rigoureuze codeherzieningen om een systeem te maken dat aantoonbaar correct is, waardoor het de keuze is van beveiligingsbewuste organisaties zoals banken, beurzen, en afdelingen van de Amerikaanse overheid. Net als NetBSD draait het op een aantal platformen.
DragonFlyBSD gaat voor hoge prestaties en schaalbaarheid variërend van een UP-systeem van een enkele computer tot een reusachtig geclusterd systeem. DragonFlyBSD heeft verscheidene technische langetermijndoelen, maar de focus ligt op het bieden van een SMP-capabele infrastructuur dat eenvoudig te begrijpen en te onderhouden is, en waarvoor eenvoudig te ontwikkelen is.
Er zijn ook twee aanvullende BSD UNIX besturingssystemen die niet open-source zijn, BSD/OS en Mac OS® X van Apple:
BSD/OS was de oudste van de afgeleiden van 4.4BSD. Het was niet open-source, alhoewel licenties voor de broncode tegen relatief kosten beschikbaar waren. Het leek in vele opzichten op FreeBSD. Twee jaar na de aankoop van BSDi door Wind River Systems slaagde BSD/OS er niet in om als een onafhankelijk product te overleven. Ondersteuning en broncode kan nog steeds beschikbaar zijn van Wind River, maar alle nieuwe ontwikkelingen zijn gericht op het embedded besturingssysteem VxWorks.
Mac OS X is de nieuwste versie van het besturingssysteem voor de Macintosh® lijn van Apple Computer Inc.. De BSD-kern van dit besturingssysteem, Darwin, is beschikbaar als een volledig werkend open-source besturingssysteem voor x86- en PPC-computers. Het grafische systeem Aqua/Quartz en vele andere propriëtaire aspecten van Mac OS X blijven echter closed-source. Verschillende Darwin-ontwikkelaars zijn ook FreeBSD-committers, en vice-versa.
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.
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.
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:
“If it ain't broke, don't fix it”: als u al een open-source besturingssysteem gebruikt, en u er tevreden mee bent, dan is er waarschijnlijk geen goede reden om over te schakelen.
BSD-systemen, in het bijzonder FreeBSD, kunnen merkbaar beter presteren dan Linux. Maar dit geldt niet voor alles. In veel gevallen zijn er weinig of geen prestatieverschillen. In sommige gevallen kan Linux beter presteren dan FreeBSD.
In het algemeen hebben BSD-systemen een betere naam qua betrouwbaarheid, voornamelijk als het resultaat van een volwassenere codebase.
BSD-projecten hebben een betere naam qua kwaliteit en volledigheid van hun documentatie. De verschillende documentatieprojecten richten zich op het bieden van actief bijgewerkte documentatie, in vele talen, en op het behandelen van alle aspecten van het systeem.
De BSD-licentie kan aantrekkelijker zijn dan de GPL.
BSD kan de meeste Linux-binairen uitvoeren, terwijl Linux geen BSD-binairen kan uitvoeren. Vele implementaties van BSD kunnen ook binairen van andere UNIX-achtige systemen uitvoeren. Als gevolg kan BSD een eenvoudigere migratieroute zijn van andere systemen dan dat Linux zou zijn.
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.