Oracle Company
DTrace kare
eBPF muturikiri webytecode akavakirwa muLinux kernel iyo inokutendera iwe kuti ugadzire network mashandiro ekubata, kutarisa sisitimu mashandiro, kubata nharembozha, kudzora kupinda, kuita zviitiko nekuchengetedza nguva (perf_event_open), kuverenga frequency uye execution nguva yekushanda, ita tracing uchishandisa kprobes. /uprobes /tracepoints. Nekuda kwekushandiswa kweJIT kuunganidza, bytecode inoshandurirwa panhunzi kuita mirairo yemuchina uye inoitwa nekuita kwekodhi yeko. DTrace inogona kuitwa pamusoro peBPF, yakafanana nemashandisirwo ainoitwa pamusoro peBPF
DTrace tekinoroji yakagadziridzwa yeSolaris inoshanda sisitimu kugadzirisa dambudziko rekutsvaga zvine simba system kernel uye kupedzisa maapplication, ichipa mushandisi kugona kuongorora maitiro ehurongwa zvakadzama uye kuongorora matambudziko munguva chaiyo. Munguva yekugadzirisa maitiro, DTrace haikanganisi kushanda kwezvikumbiro zviri pasi pekudzidza uye haina chero nzira ipi zvayo inokanganisa kushanda kwavo, izvo zvinokutendera kuti uronge kuongororwa kwemaitiro ekufambisa panhunzi. Imwe yesimba reDTrace ndiyo yepamusoro-level D mutauro, wakafanana neAWK, umo zviri nyore kwazvo kugadzira zvinyorwa zvekutevera pane kushandisa zvishandiso zvinopihwa pakunyora eBPF handlers muC, Python uye Lua nemaraibhurari ekunze.
Mainjiniya anobva kuOracle ari kushandawo kugadzira eBPF backend yeGCC uye akatoburitsa
Pamusoro peiyo bytecode chizvarwa backend, zvigamba zvakarongwa zveGCC zvakare zvinosanganisira libgcc chiteshi cheBPF uye maturusi ekugadzira mafaira eELF, zvichiita kuti zvikwanise kuita kodhi mumuchina weEBPF uchishandisa kernel-yakapihwa maloader. Parizvino, kodhi mumutauro weC inogona kushandurirwa mubytecode (kwete zvese zvemutauro zviripo), asi mune ramangwana zvinotarisirwa kuwedzera kugona kwemutauro C kunowanikwa kushandiswa, kuwedzera rutsigiro rwemimwe mitauro, kugadzira simulator, uye wedzera GCC rutsigiro rwekugadzirisa eBPF zvirongwa pasina kurodha mu kernel.
Source: opennet.ru