Mae GCC bellach yn cynnwys Γ΄l-ben i'w lunio i eBPF

Wedi'i gynnwys yng nghyfres casglwyr y GCC wedi'i fabwysiadu cod ar gyfer llunio rhaglenni ar gyfer y dehonglydd bytecode wedi'i ymgorffori yn y cnewyllyn Linux eGMP. Diolch i'r defnydd o gasgliad JIT, mae'r bytecode cnewyllyn yn cael ei drosi ar y hedfan yn gyfarwyddiadau peiriant a'i weithredu gyda pherfformiad cod brodorol. Clytiau gyda chefnogaeth eBPF derbyn i'r gangen y datblygir datganiad GCC 10 ohoni.

Yn ogystal ag Γ΄l-wyneb ar gyfer cynhyrchu bytecode, mae GCC yn cynnwys porthladd libgcc ar gyfer eBPF ac offer ar gyfer cynhyrchu ffeiliau ELF sy'n ei gwneud hi'n bosibl gweithredu cod yn y peiriant rhithwir eBPF gan ddefnyddio llwythwyr a ddarperir gan gnewyllyn. Paratowyd clytiau i gefnogi eBPF yn GCC gan beirianwyr o Oracle, a oedd eisoes wedi gwneud hynny a ddarperir cefnogaeth eBPF mewn binutils GNU. Mae efelychydd a chlytiau ar gyfer GDB hefyd yn cael eu datblygu, a fydd yn caniatΓ‘u ichi ddadfygio rhaglenni eBPF heb eu llwytho i'r cnewyllyn.

Gellir diffinio rhaglenni ar gyfer eBPF mewn is-set o'r iaith C, eu crynhoi a'u llwytho i'r cnewyllyn. Cyn ei weithredu, mae'r dehonglydd eBPF yn gwirio'r cod beit ar gyfer defnyddio cyfarwyddiadau a ganiateir ac yn gosod rhai rheolau ar y cod (er enghraifft, dim dolenni).
I ddechrau, defnyddiwyd offer LLVM i lunio eBPF ar Linux. Mae cefnogaeth eBPF yn GCC yn ddiddorol oherwydd ei fod yn caniatΓ‘u ichi ddefnyddio un pecyn cymorth i adeiladu'r rhaglenni cnewyllyn Linux ac eBPF, heb osod dibyniaethau ychwanegol.

Ar ffurf rhaglenni eBPF, gallwch greu trinwyr gweithrediadau rhwydwaith, hidlo traffig, rheoli lled band, monitro systemau, galwadau system rhyng-gipio, rheoli mynediad, cyfrif amlder ac amser gweithrediadau, a pherfformio olrhain gan ddefnyddio kprobes / uprobes / tracepoints.

Ffynhonnell: opennet.ru

Ychwanegu sylw