Een bestandssysteem dat in 2023 is toegevoegd aan de Linux-kernel, wordt nu door de kernelontwikkelaars op afstand gezet. Oprichter en eindverantwoordelijke Linus Torvalds heeft bepaald: bcachefs blijft voorlopig wel in de kernel, maar wordt voortaan extern beheerd. Achter de schermen spelen soaptaferelen, met eigengereide persoonlijkheden, strikte regels voor softwareontwikkeling, felle discussies en botte aanvaringen.
Voor degenen die wat meer zijn ingevoerd in de opensourcewereld, komt de breuk tussen Linux en bcachefs niet als een verrassing. Het bestandssysteem blijft weliswaar in de Linux-kernel, maar wordt voortaan alleen extern beheerd. De kernelontwikkelaars, met Linux-schepper Linus Torvalds aan het hoofd, trekken hun handen ervan af. Kenners hebben dit zien aankomen.
Wat is er aan de hand?
Eind juni kwam al een barst in de relatie tussen het opensourcebesturingssysteem en het opensourcebestandssysteem. Wat er toen aan de hand was? Simpel gezegd: een pullverzoek voor ingediende code van bcachefs. Het klinkt als niets bijzonders; pullverzoeken zijn immers een geaccepteerde manier van gezamenlijke codeontwikkeling. Daarbij vraagt een ontwikkelaar van een element in de softwarecode om wijzigingen 'binnen te halen' in de hoofdtak van het totale softwareproject, in dit geval bcachefs en Linux.
/i/2007712784.png?f=imagenormal)
Terwijl pullverzoeken een normale manier van samenwerken zijn, komt daar wel wat bij kijken. Wijzigingen in het ene kunnen namelijk gevolgen hebben voor het ander. Zo moeten veranderingen worden geïntegreerd, moet het nieuwe geheel vervolgens worden getest en kan dan pas een vinkje worden gezet voor succesvolle opname van de gewijzigde code. Naast codekwaliteit speelt timing hierbij een belangrijke rol. Het pullverzoek voor bcachefs had een probleem op dat laatstgenoemde gebied. Een kwestie van ongelukkige timing of botweg eigenwijze momentkeuze?
Het pullverzoek was bedoeld voor het toevoegen van functies aan bcachefs, dat sinds oktober 2023 is opgenomen in de Linux-kernel. De kernel van een besturingssysteem is als het ware het hart en vervult essentiële functies op een laag niveau, direct op de hardware. Andere elementen van een besturingssysteem draaien op een hoger niveau en vervullen andere functies. Daarbovenop draaien de applicaties.
Zorgvuldig mee omgaan
De kernel is dus een belangrijk stuk software en de ontwikkeling daarvan moet zorgvuldig worden aangepakt. Daar zijn dan ook strikte regels voor. Het pullverzoek van eind juni was een schending van die regels. De kernel bevond zich toen in een kritieke fase van de ontwikkeling: de fase waarin zogeheten releasekandidaten worden gemaakt en waarin alleen nog fixes mogen worden toegevoegd.
Nieuwe code voor functionaliteit mag alleen worden toegevoegd in de vooraf bepaalde periode voor het samenvoegen van zulke, meer algemene code. Het zogeheten mergetijdsvenster was voor de toen in ontwikkeling zijnde kernelversie al twee weken gesloten. Concreet ging het om versie 6.16 van de Linux-kernel, die eind juli uitkwam. Linus Torvalds, de oorspronkelijke maker van Linux, was niet bepaald blij met deze schending van de regels.
:strip_exif()/i/2007712750.jpeg?f=imagenormal)
De ontwikkelaar van bcachefs, Kent Overstreet, wilde een uitzondering op de regels. Zijn argument daarvoor was dat de gewijzigde code fouten zou verhelpen en verbeteringen zou brengen voor de veiligheid van opgeslagen data. Torvalds kapte die redenatie af: "Je lijkt weer te zijn vergeten wat het doel van de mergeperiode was. We gaan geen nieuwe functies toevoegen omdat je andere bugs hebt gevonden", schreef hij in de mailinglijst voor kernelontwikkelaars.
Het punt van dataveiligheid werd toen afgewezen op grond van de experimentele status van bcachefs. "Ik blijf er standvastig van overtuigd dat iedereen die bcachefs gebruikt, verwacht dat het experimenteel is", oordeelde Torvalds, waarna hij Overstreet opdroeg ervoor te zorgen dat de fixes ook echt puur fixes zijn en geen verkapte features.
Hulp zoeken
Bestandssysteem en moord
Het 'buiten zetten' van bcachefs voor de Linux-kernel kan een voorbode zijn van volledige verbanning. Dat klinkt vergaand, maar is eerder al eens gebeurd bij ReiserFS. Dat bestandssysteem werd na afkeuring in 2022 uiteindelijk in 2025 verwijderd uit Linux. Dit volgde op verwaarlozing van de ontwikkeling doordat de oorspronkelijke maker, Hans Reiser, in 2008 is veroordeeld voor de moord op zijn vrouw.
Reiser heeft eind 2023 vanuit de gevangenis een brief geschreven waarin hij spijt betuigt en excuses aanbiedt. Dat doet hij ook voor zijn verkeerde aanpak bij het indienen van code. De ontwikkelaar van het ooit veelbelovende ReiserFS erkent dat hij met zijn gedrag leden van de Linux-gemeenschap van zich heeft vervreemd. Deze inzichten zijn te danken aan lessen in conflictoplossing die Reiser heeft gevolgd. De vergelijking valt te trekken met de hulp die Torvalds eind 2018 is gaan zoeken voor zijn gedrag, wat weer valt te vergelijken met hoe Overstreet zich nu heeft opgesteld.
Een duidelijk signaal, zij het misschien wat bot geformuleerd. Torvalds is hiermee echter milder dan hij vroeger was. Jaren terug was de maker van Linux berucht om zijn uithalen en gebrekkige sociale vaardigheden. Torvalds valt te beschouwen als een van de 'welwillende dictators' die voor het leven zijn aangesteld. Daarbij vervult zo'n belangrijke leider op het gebied van opensourcesoftware een bepalende rol, maar wel op een gedienstige wijze. Torvalds heeft in zijn lange carrière de ontwikkeling van Linux met overtuiging beschermd, wat nogal eens met botte bewoordingen en harde oordelen is gebeurd.
Eind 2018 is Torvalds tot het inzicht gekomen dat zijn gedrag niet door de beugel kan. Hij heeft toen tijdelijk een stap teruggedaan van de Linux-ontwikkeling, om hulp te zoeken zodat hij voortaan beter met zijn emoties om kan gaan. “Ik moet wat van mijn gedrag aanpassen en ik wil mijn excuses aanbieden aan de mensen die door mijn persoonlijke gedrag zijn gekwetst en mogelijk zijn weggejaagd van kernelontwikkelwerk”, schreef Torvalds toen.
Het is en blijft niet makkelijk om een leider te zijn, zeker niet als je gepassioneerd bent over wat je doet. Hetzelfde valt te zeggen over de ontwikkelaar van bcachefs. Overstreet lijkt de afwijzing van zijn pullverzoek eind juni dit jaar te hebben opgevat als uitdaging. Hij reageerde op Torvalds' mededeling over het doel van het mergevenster dat het doel toch is om mensen code te geven die werkt, met nadruk op die laatste twee woorden.
Overstreet wees in zijn reactie op problemen met andere bestandssystemen waarbij gebruikers zijn geraakt door onherstelbaar dataverlies. "Er zijn nog altijd mensen die niet willen afstappen van ext4 en ik kan ze dat niet kwalijk nemen", schrijft de bcachefs-maker over een ander, ouder bestandssysteem. Het doel is volgens hem ervoor te zorgen dat gebruikers software krijgen die ze kunnen vertrouwen en waar ze op kunnen bouwen. "Ik zie niet dat jij dat begrijpt", sluit hij dat bericht aan Torvalds af.
De toon was gezet. Sindsdien is er achter de schermen veel gebeurd, en zeker niet voor het eerst. Een niet onbelangrijk detail in de woordenwisseling van eind juni is het woord 'weer' dat Torvalds gebruikte in zijn boodschap aan Overstreet. Die ontwikkelaar heeft zich eerder al niet gehouden aan de regels voor wanneer welke codewijzigingen mogen worden ingediend. Vanuit passie, vanuit eigengereidheid of wellicht vanuit eigenwijsheid?
Briljant, gepassioneerd, koppig, blind
Op onlinefora wordt Overstreet omschreven als een briljante ontwikkelaar met veel passie voor zijn software. De kwaliteit van zijn code gaat hem echt aan het hart. Tegelijkertijd wordt Overstreet ook koppig en blind genoemd, waarbij hij regels van anderen niet als valide lijkt te zien. Duidelijk is dat het fixen van bugs en het voorkomen van dataverlies kritieke kwesties voor hem zijn. Voor Torvalds en de andere kernelontwikkelaars zijn de regels voor codewijzigingen echter ook kritieke kwesties.
De diverse aanvaringen hebben nu geleid tot de uitzetting van bcachefs. Dat bestandssysteem voor Linux wordt voortaan extern beheerd, beveelt Torvalds, die eindverantwoordelijk is. "Volgens lange discussies, publiek en privé", stelt hij nog kort. Daarmee is bcachefs niet langer officieel ondersteund in de Linux-kernel. Het is de vraag wat dit gaat betekenen voor releases van het opensourcebesturingssysteem na versie 6.17, dat nu in de fase van release candidates zit.
Keuzes, keuzes
Mogelijk verdwijnt bcachefs geheel uit de kernel. Zo'n verwijdering klinkt vergaand, maar is dat niet per se. Ten eerste is bcachefs nog experimenteel, in ieder geval wat Torvalds betreft. Ten tweede is dat bestandssysteem slechts een van de vele opties in Linux. Het opensourcebesturingssysteem heeft − in tegenstelling tot Windows en macOS − niet één officieel bestandssysteem.
De keuze voor een bestandssysteem kan verschillen per aanbieder van Linux-distributie, zoals Ubuntu, Mint, Red Hat, SUSE enzovoorts. Daarnaast kunnen gebruikers kiezen welk bestandssysteem ze gebruiken in hun Linux-installatie. Ten derde is er een precedent: het veelbelovende bestandssysteem ReiserFS is recent verwijderd uit Linux.
Het drama rond bcachefs nu kan een gemis opleveren voor Linux-aanbieders en -gebruikers. Een geavanceerd nieuw fundament voor bestandsopslag dreigt door botsende persoonlijkheden en bestaande regels voor softwareontwikkeling op een zijspoor te raken. Aan de andere kant is de handhaving van regels juist van belang voor Linux-aanbieders en -gebruikers. Betrouwbare ontwikkeling en release van het besturingssysteem vormen het fundament voor vertrouwen om het te verpakken in een distributie, aan te bieden en te gebruiken.
Redactie: Jasper Bakker • Eindredactie: Monique van den Boomen