Microsoft ji bo Windows-ê pêkanîna eBPF amade kiriye

Microsoft ji bo Windows-ê bicîhkirina bine-pergala eBPF weşand, ku destûrê dide te ku hûn rêwerzên kêfî yên ku di asta kernelê ya pergala xebitandinê de dixebitin bidin destpêkirin. eBPF tercumanek bytekodê ku di nav kernelê de hatî çêkirin peyda dike, ku îmkana afirandina rêwerzên xebata torê yên ku ji cîhê bikarhêner hatî barkirin, gihîştinê kontrol bike û xebata pergalan bişopîne. eBPF ji berdana 3.18-an vir ve di nav kernel Linux-ê de cih digire û dihêle hûn pakêtên torê yên hatinî/derketî, şandina pakêtan, rêveberiya bandwidthê, girtina bangên pergalê, kontrolkirina gihîştinê û şopandinê birêve bibin. Bi saya karanîna berhevoka JIT-ê, bytecode bi lez di rêwerzên makîneyê de tê wergerandin û bi performansa koda berhevkirî tê darve kirin. eBPF ji bo Windows-ê di bin lîsansa MIT-ê de çavkaniya vekirî ye.

eBPF ji bo Windows dikare bi amûrên eBPF yên heyî re were bikar anîn û API-ya gelemperî ya ku ji bo serîlêdanên eBPF li Linux-ê tê bikar anîn peyda dike. Di nav tiştên din de, proje destûrê dide we ku hûn koda ku bi C-yê hatî nivîsandin di nav bytekoda eBPF de bi karanîna berhevkarê eBPF-ya standard-based Clang-ê berhev bikin û rêvebirên eBPF yên ku berê ji bo Linux-ê hatine çêkirin li ser kernel Windows-ê bimeşînin, qatek lihevhatina taybetî peyda bikin û piştgirî bidin standard Libbpf. API ji bo lihevhatina bi serîlêdanên ku bi bernameyên eBPF re têkildar in. Ev di nav de qatên ku ji bo XDP (Rêya Daneyên eXpress) û girêdana soketê çengên mîna Linux-ê peyda dikin, gihandina abstraktkirina stûna torê û ajokarên torê yên Windows-ê vedihewîne. Planan bi pêvajoyên standard Linux eBPF re lihevhatina asta koda çavkaniyê ya tevahî peyda dike.

Microsoft ji bo Windows-ê pêkanîna eBPF amade kiriye

Cûdahiya sereke di navbera pêkanîna eBPF-ê de ji bo Windows-ê karanîna verastkerek bytecode ya alternatîf e, ku bi eslê xwe ji hêla xebatkarên VMware û lêkolînerên ji zanîngehên Kanada û Israelisraîlî ve hatî pêşniyar kirin. Verastker di pêvajoyek veqetandî, veqetandî de di cîhê bikarhêner de dimeşe û berî ku bernameyên BPF-ê bicîh bîne tê bikar anîn da ku xeletiyan nas bike û çalakiya xirab a gengaz asteng bike.

Ji bo verastkirinê, eBPF ji bo Windows-ê rêbazek analîzek statîk li ser bingeha Wervekirina Abstract bikar tîne, ku, li gorî verastkerê eBPF-ê ji bo Linux-ê, rêjeyek erênî ya derewîn kêmtir nîşan dide, analîza loopê piştgirî dike, û pîvandina baş peyda dike. Rêbaz gelek şêwazên darvekirinê yên tîpîk ên ku ji analîzkirina bernameyên eBPF yên heyî hatine wergirtin, digire ber çavan.

Piştî verastkirinê, bytecode ji wergêrek ku di asta kernelê de dixebite tê veguheztin, an jî ji berhevkarek JIT re derbas dibe, li dûv koda makîneya encam a bi mafên kernelê tê bicîh kirin. Ji bo veqetandina rêkarên eBPF di asta kernelê de, mekanîzmaya HVCI (HyperVisor-enforced Code Integrity) tê bikar anîn, ku amûrên virtualîzasyonê bikar tîne da ku pêvajoyên di kernelê de biparêze û bi karanîna îmzeyek dîjîtal piştrastkirina yekbûna koda darvekirinê peyda dike. Sînorkirina HVCI ev e ku ew tenê dikare bernameyên eBPF yên şirovekirî verast bike û nikare bi JIT re were bikar anîn (hilbijartina we ya performansê an ewlehiya zêde heye).

Source: opennet.ru

Add a comment