De architectuur van de BPF-instructieset heeft de status van voorgesteld standaard ontvangen.

De IETF-commissie (Internet Engineering Task Force), die zich bezighoudt met de ontwikkeling van protocollen en architecturen voor het internet, heeft de RFC voor de architectuur van de BPF-instructieset voltooid en de bijbehorende specificatie gepubliceerd onder identificatienummer RFC 9669. RFC heeft de status van 'Aangedragen Standaard' gekregen, waarna de werkzaamheden zullen beginnen om de RFC de status van 'Draft Standard' te geven, wat in feite volledige stabilisatie en inachtneming van alle gepresenteerde opmerkingen betekent.

De gepubliceerde specificatie beschrijft de instructieset van BPF-bytecode en een lage-niveau virtuele machine die wordt gebruikt in de eBPF-kernelsubsystemen van Linux voor het uitvoeren van externe handlers, in staat om het systeemgedrag on-the-fly te wijzigen zonder dat de kernelcode hoeft te worden aangepast. In wezen implementeert eBPF de eenvoudigste virtuele processor met zijn eigen registerset, RISC-achtige instructies, een stack en een instructieteller. BPF-programma's worden meestal geschreven in een subset van de programmeertaal C en worden daarna gecompileerd naar bytecode die geschikt is voor uitvoering in. een virtuele machineDe virtuele machine kan BPF-programma's uitvoeren door gebruik te maken van zowel interpretatie als JIT-compilatie voor het on-the-fly vertalen van bytecode naar machine-instructies.

Het wordt verwacht dat de standaardisatie van de architectuur van de BPF-instructieset een stimulans zal zijn voor de ontwikkeling van externe implementaties die compatibel zijn met de eBPF-virtuele machine en in staat zijn om BPF-programma's uit te voeren die zijn geschreven voor de Linux-kernel. Er wordt gewerkt aan het creƫren van dergelijke. virtuele machines sommige fabrikanten van netwerkadapters, die middelen ontwikkelen voor hardwareversnelling van de uitvoering van BPF-handlers voor netwerkpakketten. Het idee is om de mogelijkheden van het XDP-subsysteem (eXpress Data Path) uit te breiden voor het uitvoeren van BPF-programma's, niet alleen op het niveau van de netwerdriver, maar ook aan de netwerkkaartzijde.

Bijvoorbeeld, het bedrijf Netronome heeft BPF-ondersteuning toegevoegd aan de Netronome Agilio CX SmartNIC-adapter en een verzameling voorbeelden van universele BPF-programma's gepresenteerd, die niet alleen met een CPU in de kernel kunnen worden uitgevoerd met een XDP-compatibele stuurprogramma, maar ook aan de kant van de netwerkadapter, waardoor beslissingen over het afwijzen, wijzigen of omleiden van pakketten kunnen worden genomen zonder CPU-resources te verspillen. Daarnaast wordt de XRP-technologie (eXpress Resubmission Path) ontwikkeld, wat het mogelijk maakt om BPF te gebruiken om bepaalde operaties met NVMe-opslag, zoals werken met indexen en het aggregeren van gegevens, naar het niveau van de NVMe-stuurprogramma of naar een extern apparaat te verplaatsen.

Het wordt opgemerkt dat bredere implementatie van dergelijke mogelijkheden tot nu toe werd belemmerd door de risico's die samenhangen met compatibiliteitsproblemen en de noodzaak om de status van eBPF in de kernel te volgen. Vanwege deze risico's hebben sommige fabrikanten de implementatie van hardwarematige BPF-versnelling in hun apparaten uitgesteld totdat er een standaard is gevestigd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster