IETF (Internet Engineering Task Force), mis tegeleb interneti protokollide ja arhitektuuri arendamisega, on lõpetanud BPF käskude komplekti arhitektuuri RFC koostamise ning avaldanud sellega seotud spetsifikatsiooni identifikaatoriga RFC 9669. RFC sai "Eelnõu standardiks" ning seejärel algab töö RFC muutmiseks mustandstandardiks (Draft Standard), mis tähendab faktit, et see on täielikult stabiliseerunud ja võtab arvesse kõiki esitatud märkusi.
Avaldatud spetsifikatsioon kirjeldab BPF bytekoodi käsutuste komplekti ja madala taseme virtuaalmasinat, mida kasutatakse Linuxi eBPF kernelialases alamsüsteemis väliste töötlejate täitmiseks, mis suudavad reaalajas muuta süsteemi käitumist ilma kernelikoodi muutmiseta. Essentsiaalselt rakendab eBPF lihtsat virtuaalset protsessorit koos oma registrite komplekti, RISC-taoliste käsuridade, staki ja käsu loenduri. BPF programmid luuakse tavaliselt C keele alamhulgal ja kompileeritakse seejärel bytekoodiks, mis on valmis täitmiseks. virtuaalmasinas. Virtuaalmasin võib BPF programmaid käitada nii tõlgendamise kui ka JIT-kompileerimise abil, et tõlkida bajtkoodi otse masinainstruktsioonideks.
Oletatakse, et BPF käskude komplekti arhitektuuri standardimine annab tõuke kolmandate osapoolte rakenduste loomisele, mis on ühilduvad eBPF virtuaalmasinaga ja suudavad käitada Linuxi kernelile kirjutatud BPF programme. Selliste arendamisega virtuaalmasinad tegelevad mõned võrgukaardi tootjad, kes arendavad seadmeid BPF-võrgupakettide protsessorite kiirendamiseks. Idee seisneb XDP (eXpress Data Path) alamsüsteemi võimaluste laiendamises, et käitada BPF programme mitte ainult võrgudraiveri tasandil, vaid ka võrgu kaardi poolel.
Näiteks on ettevõte Netronome lisanud BPF toe Netronome Agilio CX SmartNIC adapterile ning pakkunud välja kogumi universaalsete BPF-programmide näidiseid, mida saab käitada mitte ainult CPU abil tuumas koos mis tahes XDP-ühilduva draiveriga, vaid ka võrguadapteri küljel. See võimaldab teha otsuseid pakettide filtreerimise, muutmise või suunamise kohta, kulutamata CPU ressursse. Eraldi arendatakse tehnoloogiat XRP (eXpress Resubmission Path), mis võimaldab BPF-i kasutada teatud NVMe salvestusseadmestiku operatsioonide, näiteks indeksite töötlemise ja andmete kogumise, viimiseks NVMe draiveri tasemele või välistesse seadmetesse.
On märgitud, et selliste võimaluste laiemat juurutamist takistavad endiselt riskid, mis on seotud ühilduvuse rikkumise ja vajadusega jälgida eBPF-i seisundit tuumas. Nende riskide tõttu on mõned tootjad jätnud BPF-i riistvarakiirenduse rakendamise oma seadmetes standardi väljatöötamiseni.
Allikas: opennet.ru
