Oracle Company
DTrace na
Ang eBPF ay isang bytecode interpreter na binuo sa kernel ng Linux na nagbibigay-daan sa iyong lumikha ng mga humahawak ng operasyon ng network, subaybayan ang aktibidad ng system, maharang ang mga tawag sa system, kontrolin ang pag-access, iproseso ang mga kaganapan nang may pag-iingat ng tiyempo (perf_event_open), kalkulahin ang dalas at oras ng mga operasyon, magsagawa ng pagsubaybay gamit ang kprobes / uprobes / tracepoints. Salamat sa paggamit ng JIT compilation, ang bytecode ay isinalin sa mga tagubilin ng makina sa mabilisang at naisakatuparan sa pagganap ng native code. Maaaring ipatupad ang DTrace sa ibabaw ng eBPF, katulad ng kung paano ito nasa itaas ng eBPF
Ang teknolohiya ng DTrace ay binuo para sa operating system ng Solaris upang malutas ang mga problema ng dynamic na pagsubaybay sa kernel ng system at pagtatapos ng mga aplikasyon, na nagbibigay sa user ng kakayahang subaybayan ang pag-uugali ng system nang detalyado at mag-diagnose ng mga problema sa real time. Sa panahon ng pag-debug, ang DTrace ay hindi nakakaapekto sa pagpapatakbo ng mga pinag-aralan na application at hindi nakakaapekto sa kanilang pagganap sa anumang paraan, na nagbibigay-daan sa pag-aayos ng pagsusuri ng mga tumatakbong system sa mabilisang. Sa mga lakas ng DTrace, isang mataas na antas ng D na wika, katulad ng AWK, ang nabanggit, kung saan mas madaling magsulat ng mga trace script kaysa kapag gumagamit ng mga tool para sa pagsusulat ng mga humahawak na inaalok para sa eBPF sa C, Python at Lua na may mga panlabas na aklatan .
Ang mga inhinyero ng Oracle ay gumagawa din ng isang eBPF backend para sa GCC at nai-publish na
Bilang karagdagan sa backend para sa pagbuo ng bytecode, ang mga patch na iminungkahi para sa GCC ay kinabibilangan din ng isang port ng libgcc para sa eBPF at mga tool para sa pagbuo ng mga ELF file, na ginagawang posible na magsagawa ng code sa eBPF virtual machine gamit ang mga kernel-provided loader. Sa ngayon, maaaring isalin ang C code sa bytecode (hindi lahat ng feature ng wika ay available), ngunit sa hinaharap ay inaasahang palawakin ang mga feature ng C language na magagamit para sa paggamit, magdagdag ng suporta para sa iba pang mga wika, lumikha ng simulator, at magdagdag ng suporta sa GCC para sa pag-debug ng mga programang eBPF nang hindi naglo-load sa kernel.
Pinagmulan: opennet.ru