Het eBPF Linux-programma krijgt een eigen foundation
- August 17, 2021
- 0
Het eBPF-programma begon als een netwerkfilter, maar het is Linux’s Zwitserse army knife geworden en nu ligt de toekomst in handen van de eBPF Foundation.
In 1992 werd het Berkeley Packet Filter (BPF) in Unix-kringen geïntroduceerd als een nieuw, veel sneller netwerkpakketfilter. Dat was leuk, maar verre van revolutionair. Jaren later, in 2014, werd het aangepast en in de Linux-kernel gebracht als uitgebreide BPF (eBPF). Daar zou het radicaal nieuwe functies aan Linux toevoegen en het wordt gebruikt voor tal van nuttige op Linux gebaseerde projecten en eBPF gaat ook over van Linux naar Windows.
Wat is er zo speciaal aan? Met eBPF kunt u programma’s in de Linux-kernel uitvoeren zonder de kernelbroncode te wijzigen of extra modules toe te voegen. In feite werkt het als een soort van lichte sandbox virtuele machine (VM) in de Linux-kernelruimte. Programma’s die in eBPF kunnen worden uitgevoerd werken veel sneller en profiteren van kernelfuncties die niet beschikbaar zijn voor andere Linux-programma’s.
Zoals Thomas Graf, CTO en medeoprichter van Isovalent en voorzitter van de raad van bestuur van eBPF uitlegde:
Historisch gezien is het besturingssysteem altijd een ideale plek geweest om waarneembaarheid, beveiliging en netwerkfunctionaliteit te implementeren vanwege het bevoorrechte vermogen van de kernel om het hele systeem te overzien en te besturen. Tegelijkertijd is de kernel van een besturingssysteem moeilijk te ontwikkelen vanwege zijn centrale rol en hoge eisen aan stabiliteit en veiligheid. Het innovatietempo op het niveau van het besturingssysteem is dus traditioneel lager in vergelijking met functionaliteit die buiten het besturingssysteem wordt geïmplementeerd. EBPF verandert deze formule fundamenteel. Door sandbox-programma’s binnen het besturingssysteem te laten draaien, stelt eBPF ontwikkelaars in staat om eBPF-programma’s te maken die tijdens runtime mogelijkheden aan het besturingssysteem toevoegen. Het besturingssysteem garandeert vervolgens de veiligheid en efficiëntie van de uitvoering alsof het native is gecompileerd met behulp van een Just-In-Time (JIT) compiler en verificatie-engine. Dit heeft geleid tot een golf van op eBPF gebaseerde projecten die een breed scala aan gebruiksscenario’s omvatten, waaronder netwerken van de volgende generatie, observeerbaarheid en beveiligingsfunctionaliteit.
Dit heeft de manier veranderd waarop besturingssystemen en infrastructuurdiensten samenwerken. Het overbrugde de kloof tussen kernel- en gebruikersruimteprogramma’s. EBPF heeft ontwikkelaars ook in staat gesteld om logica te combineren en toe te passen op meerdere subsystemen die traditioneel volledig onafhankelijk waren. Deze nieuwe programma’s bevatten debuggers voor de Linux-kernel, zoals bpftrace; cloud-native beveiligingssoftware met Falco en Kubernetes-beveiligingstoepassingen met Hubble. Dat zijn veel nieuwe, belangrijke programma’s en er komen er nog meer aan. Het was dus alleen maar logisch om een nieuwe basis voor het project te vormen: de door de Linux Foundation gesponsorde eBPF Foundation. Je kunt beoordelen hoe belangrijk mensen het zien door de stichtende leden. Deze omvatten Facebook, Google, Isovalent, Microsoft en Netflix. Waarom? Omdat het al nuttig voor ze is. Facebook gebruikt bijvoorbeeld eBPF als de primaire softwaregedefinieerde load balancer in zijn datacenters, en Google gebruikt Cilium om op eBPF gebaseerde netwerken en beveiliging naar zijn beheerde Kubernetes-aanbiedingen GKE en Anthos te brengen. Deze explosie van op eBPF gebaseerde projecten maakt het een van de meest invloedrijke technologieën in de wereld van infrastructuursoftware. Dus, zei Graf, “is de vraag groot om de samenwerking tussen projecten te optimaliseren en ervoor te zorgen dat de kern van eBPF goed wordt onderhouden en uitgerust met een duidelijke routekaart en visie voor de mooie toekomst die eBPF ligt. Dit is waar de eBPF Foundation van pas komt, en richt een eBPF-stuurgroep op om te zorgen voor de technische richting en visie van eBPF.Bovendien, met de poort van eBPF naar de Windows-kernel en extra poorten naar andere platforms op komst, wordt de kwestie van eBPF-programmaportabiliteit en eBPF-runtimevereisten belangrijker en vereist coördinatie.”