Ile-iṣẹ Oracle
DTrace tẹlẹ
eBPF jẹ onitumọ bytecode ti a ṣe sinu ekuro Linux ti o fun ọ laaye lati ṣẹda awọn olutọju iṣẹ nẹtiwọọki, ṣe atẹle iṣẹ eto, awọn ipe eto idilọwọ, iraye si iṣakoso, awọn iṣẹlẹ ilana pẹlu ṣiṣe akoko (perf_event_open), ka igbohunsafẹfẹ ati akoko ipaniyan ti awọn iṣẹ, ṣe wiwa kakiri nipa lilo kprobes /upprobes /tracepoints. Ṣeun si lilo akopọ JIT, bytecode ti tumọ lori fo sinu awọn ilana ẹrọ ati ṣiṣe pẹlu iṣẹ ti koodu abinibi. DTrace le ṣe imuse lori oke eBPF, iru si bii o ṣe ṣe imuse lori oke eBPF
Imọ-ẹrọ DTrace ti ni idagbasoke fun ẹrọ iṣẹ Solaris lati yanju iṣoro ti wiwa kakiri eto ekuro ati awọn ohun elo ipari, fifun olumulo ni agbara lati ṣe atẹle ihuwasi eto ni awọn alaye ati ṣe iwadii awọn iṣoro ni akoko gidi. Lakoko ilana n ṣatunṣe aṣiṣe, DTrace ko ni ipa lori iṣẹ ti awọn ohun elo ti o wa labẹ iwadi ati pe ko ni ipa ni eyikeyi ọna ti iṣẹ wọn, eyiti o fun ọ laaye lati ṣeto itupalẹ ti awọn ọna ṣiṣe ṣiṣe lori fo. Ọkan ninu awọn agbara ti DTrace ni ede D ti o ga, ti o jọra si AWK, ninu eyiti o rọrun pupọ lati ṣẹda awọn iwe afọwọkọ wiwa ju lilo awọn irinṣẹ ti a nṣe fun kikọ awọn olutọju eBPF ni C, Python ati Lua pẹlu awọn ile-ikawe ita.
Awọn onimọ-ẹrọ lati Oracle tun n ṣiṣẹ lori ṣiṣẹda ẹhin eBPF fun GCC ati pe wọn ti ṣe atẹjade tẹlẹ
Ni afikun si ẹhin iran bytecode, awọn abulẹ ti a dabaa fun GCC tun pẹlu ibudo libgcc kan fun eBPF ati awọn irinṣẹ fun ṣiṣẹda awọn faili ELF, ṣiṣe ki o ṣee ṣe lati ṣiṣẹ koodu ni ẹrọ foju eBPF ni lilo awọn agberu ti a pese ekuro. Ni bayi, koodu ni ede C le tumọ si bytecode (kii ṣe gbogbo awọn ẹya ede wa), ṣugbọn ni ọjọ iwaju o nireti lati faagun awọn agbara ede C ti o wa fun lilo, ṣafikun atilẹyin fun awọn ede miiran, ṣẹda simulator, ati ṣafikun atilẹyin GCC fun ṣiṣatunṣe awọn eto eBPF laisi ikojọpọ sinu ekuro.
orisun: opennet.ru