FreeBSD is een Unix-achtig besturingssysteem en een iteratie van de oudere Unix distributies beter bekend als de Research Unix. Het is open-source en publiekelijk gratis beschikbaar, en eigenlijk slechts een van de vele Berkeley Software Distributies (afgekort BSD, vandaar dat het OS FreeBSD heet), de andere opmerkelijke iteraties zijn OpenBSD, NetBSD, en DragonFly BSD.
Linux, als een afgeleide van Unix, heeft natuurlijk veel gemeen met de BSD’s. Net als BSD zijn ook Linux-distributies vrij en open-source. Ondanks de fundamentele overeenkomsten heeft Linux de BSD’s in populariteit ruimschoots overschaduwd, met meer dan 74% van de moderne smartphones die op Linux zijn gebaseerd.
Dus dat roept de vraag op: Als BSD en Linux slechts iteraties zijn van onderzoek Unix, wat maakt ze dan precies verschillend?
Wel, de verschillen tussen de twee liggen in de grondbeginselen, en de verschillen zijn er zeer veel. Maar om ze allemaal in een enkel bericht te lezen, zou nogal vervelend zijn voor de lezers. Daarom zal dit bericht zich alleen richten op de basisprincipes en de ingewikkelde details achterwege laten om het kort te houden en om nieuwe lezers niet te intimideren.
Maar wat is Linux eigenlijk?
Het eerste wat veel mensen verkeerd begrijpen is dat Linux een kernel is, en geen besturingssysteem. Dus dat maakt het slechts een deel van het OS, niet het OS zelf.
Laten we Kernels even bespreken. Kernels dienen als de spil in elk besturingssysteem, omdat zij alle onderliggende code bevatten waarop dat besturingssysteem steunt. Het maakt en versnelt de interactie tussen de hardware en software componenten van een systeem, beheert de input/output verzoeken van en naar de software applicaties, en is verantwoordelijk voor de afhandeling van de hardware apparaten.
Kortom, een kernel is de meest integrale eigenschap van elk besturingssysteem waarop het is gebaseerd, en is dus teruggetrokken naar een zeer beschermend deel in het geheugen van het systeem, waar alle verzoeken om toegang van toepassingen worden geweigerd, met uitzondering van een paar die integraal zijn voor de werking van het systeem.
Nu we begrijpen wat een kernel is, kunnen we verder gaan en zien wat Linux, als kernel, doet in het besturingssysteem.
Linux Kernel binnen een besturingssysteem
Onder de meest populaire Linux-gebaseerde besturingssystemen zijn Debian, Ubuntu, Fedora, en Deepin. Dus, als je iemand hoort zeggen dat hij Linux gebruikt, weet dan dat het eigenlijk een van deze distributies is. Deze distributies zijn “Linux-gebaseerd” omdat ze gebouwd zijn op de Linux kernel. De aanpassingen aan de kernel, samen met de nieuwe applicaties die erin worden geladen, maken elke distributie anders dan de andere.
Wat is BSD, en hoe verschilt het van Linux?
Zoals eerder gezegd, de verschillende distributies van BSD zijn allemaal besturingssystemen. En dat maakt BSD, net als Linux, een kernel.
Maar om het ingewikkeld te maken, BSD is ook een op zichzelf staand besturingssysteem, wat Linux niet is. Laten we eens uitleggen hoe dat precies zit.
Voor BSD-distributies worden verschillende programma’s aan de BSD-kernel toegevoegd. Deze combinatie wordt dan vrijgegeven als een op zichzelf staand, compleet pakket dat moet worden geïnstalleerd, en het ding is klaar om te gaan. Dus, het kernverschil tussen de BSD distributies zoals FreeBSD, OpenBSD, etc., komt door de programma’s die aan de kernel van het besturingssysteem zijn toegevoegd. Om aanvullende softwarepakketten te downloaden, gebruiken BSD-gebruikers het ports-systeem, dat deze pakketten in broncodevorm bewaart. De broncode wordt door het systeem gecompileerd telkens als de software wordt gestart. Hoewel dit omslachtig kan blijken te zijn, vooral bij het draaien van langere, ingewikkelder codes, kunnen BSD-systemen de compilatiestap bij elke start geheel overslaan als het programma in binaire staat is geïnstalleerd, waardoor het proces voor een groot deel wordt verlicht.
Linux verschilt van BSD in de zin dat elk van zijn distributies totaal verschillende programma’s gebruikt, en de distributies hebben geen gecentraliseerde repository voor softwarepakketten, omdat elke distributie zijn eigen repository heeft.
Verschillen in Licenties
Eén van de fundamentele verschillen tussen BSD en Linux is dat van het Licentiesysteem waaronder hun distributies worden uitgebracht.
Wanneer u software downloadt van de Ports repository in BSD of een distributie in zijn geheel installeert, wordt de software of distributie aan u toegewezen onder de BSD-licentie, wat een aangepast licentiesysteem is dat door de BSD-ontwikkelaars wordt gebruikt. Hoewel BSD vanaf nu volledig open-source en vrij is, stelt het BSD-licentiesysteem de ontwikkelaars in staat om BSD op elk moment closed-source te verklaren. Als FreeBSD-gebruiker heeft u geen wettelijk recht op verdere uitgaven van BSD-ontwikkelaars. De BSD-ontwikkelaars hebben echter publiekelijk gemaakt dat zij de intentie hebben om het in de toekomst open-source te houden.
Linux-distributies worden uitgebracht onder de GNU General Public License (GPL). Onder dit licentiesysteem zijn Linux-ontwikkelaars wettelijk verplicht om elke wijziging die in de Linux-kernel wordt aangebracht, vrij te geven. Het licentiesysteem zorgt er in wezen voor dat Linux open-source blijft, ongeacht de wijzigingen die in de kernel zelf worden aangebracht.
Waarom is Linux populairder? (Spoilers: Beschikbaarheid van software)
Als je je de hele tijd hebt afgevraagd waarom je niet zoveel over BSD’s hebt gehoord als over Linux-distributies, hier is waarom: als het gaat om softwarecompatibiliteit, slaat Linux het recht uit het park. Voor elke software die er is, is er een versie die compatibel is met Linux. Dit is niet het geval voor FreeBSD, dat om die reden grotendeels verwaarloosd blijft.
De Linux kernel maakt het schrijven en distribueren van software programma’s eenvoudiger in vergelijking met andere kernels, dus ontwikkelaars zijn van nature geneigd om naar Linux versies toe te werken. Vooral de distributie wordt nog eenvoudiger door het voorgeïnstalleerde binaire pakketsysteem dat het mogelijk maakt. Met Linux kunnen softwarepakketten worden gedownload en geïnstalleerd via pakketbeheerders als apt, yum, Pacman, enz.
In vergelijking met softwaredistributie in Linux hebben BSD-gebruikers het veel moeilijker. De softwarepakketten worden in BSD eerst als broncode gedownload via het ports-systeem. Deze broncodes worden vervolgens iedere keer dat ze worden gestart gecompileerd, een proces dat zowel tijdrovend als frustrerend is in de moderne tijd waarin software met een klik op een knop wordt geïnstalleerd. Dit is evenzeer frustrerend voor de ontwikkelaars, aangezien zij een heleboel moeite moeten doen om het compileren zo snel mogelijk te laten verlopen.
Hoewel de introductie van voorgecompileerde binaire pakketten het proces om software in FreeBSD te krijgen grotendeels heeft verlicht, blijft de beschikbaarheid van software nog steeds een enorm probleem voor BSD’s.
Kiezen tussen Linux en BSD
Naast de meer mainstream Windows en IOS, lopen Linux distributies met sprongen voor op alle andere besturingssystemen die er zijn. Het is vrij, open-source, en heeft alles te bieden wat FreeBSD heeft, zonder de voorbehouden.
BSD en Linux hebben veel meer gemeen dan dat ze verschillen, met licenties en software distributie als de enige kernverschillen. Toch, ondanks de overeenkomsten, is het gebruik van de een een afweging van de ander.
Aan de ene kant onderhoudt FreeBSD een bibliotheek van gereedschappen en afhankelijkheden voor alle distributies, waardoor het voor de ontwikkelaars eenvoudiger wordt om te itereren op de inhoud en met eigen toepassingen te komen. Dit is waar FreeBSD een aanzienlijk voordeel heeft boven Linux, omdat de GNU suite die bij Linux zit dit niet toestaat.
Maar aan de andere kant, het gebrek aan software compatibiliteit en beschikbaarheid belemmert de ervaring met FreeBSD ernstig. Dit probleem kan worden opgelost door het Linux-compatibiliteitspakket te gebruiken, waarmee Linux-software op BSD-distributies kan draaien, maar dit is een extra stap die de ervaring desondanks belemmert.
Wat de licenties betreft, is de Linux GPL-licentie veel restrictiever dan de BSD-licenties. Ontwikkelaars of gebruikers kunnen geen variaties op de Linux kernel of broncode aanbrengen zonder deze openbaar te maken. BSD-gebruikers hebben dergelijke verplichtingen niet; vandaar dat ontwikkelaars BSD op zijn minst zouden moeten uitproberen. De mogelijkheid om de broncode privé te houden is een aanzienlijk voordeel dat Linux niet biedt.
De licentie voor Linux distributies is bevoordeeld in het voordeel van de gebruikers, omdat het bevestigt dat elke ontwikkeling die wordt gemaakt om toepassingen voor het systeem te verbeteren beschikbaar zal worden gesteld aan de gebruikers. De BSD-licenties daarentegen zijn meer verwant aan de standaardlicenties, waardoor gebruikers BSD’s gratis kunnen installeren, maar de ontwikkelaars niet verplicht worden hun inhoud openbaar te maken.
Onze aanbeveling
Wij zouden een Linux-distributie aanbevelen als u die voor algemene doeleinden gaat gebruiken. De software compatibiliteit is voor ons reden genoeg om het aan te bevelen. Echter, als u een fabrikant bent, is BSD de juiste optie voor u. Het heeft een gecentraliseerde repository voor software en staat bekend om zijn betrouwbaarheid. En wat de BSD-licenties betreft, hoeft u zich geen zorgen te maken over het open-source maken van uw werk.
Als u voor de Linux Kernel heeft gekozen, raden wij u aan Ubuntu te gebruiken. Deze wordt regelmatig, om de zes maanden, bijgewerkt, een consistentie die naar mijn mening een goede balans biedt tussen het bijhouden van beveiligingsproblemen en het niet frustreren van gebruikers.
En als u kiest voor de BSD-kernel, raden we FreeBSD aan, wat over het algemeen de meest gebruikte distributie van BSD is.