اوریکل د eBPF په کارولو سره د لینکس لپاره DTrace بیا ډیزاین کولو اراده لري

اوریکل شرکت راپور شوی پورته ته د DTrace پورې اړوند بدلونونو لیږدولو کار په اړه او پلان لري چې د معیاري لینکس کرنل زیربنا په سر کې د DTrace متحرک ډیبګینګ ټیکنالوژي پلي کړي ، د بیلګې په توګه د فرعي سیسټمونو لکه eBPF کارول. په پیل کې، په لینکس کې د DTrace کارولو اصلي ستونزه د جواز کچې ناانډولتیا وه، مګر په 2018 اوریکل کې جواز ورکړل شوی د GPLv2 لاندې DTrace کوډ.

DTrace لا دمخه اوږده موده د اوریکل لینکس توزیع لپاره د پراخ شوي کرنل برخې په توګه وړاندیز شوی، مګر په نورو توزیعونو کې د کارونې لپاره اضافي کرنل پیچونو ته اړتیا لري، کوم چې د دې ټیکنالوژۍ کارول محدودوي. د مثال په توګه، اوریکل چمتو شوی په فیډورا لینکس کې د DTrace نصبولو او کارولو لپاره تفصيلي لارښوونې. د نصبولو لپاره مجلس اړین دی اوزار او د لینکس کرنل په کارولو سره بیا جوړ شوی پیچونه. د اوریکل او فیډورا پیچونو سره د کرنل اسمبلۍ اجرا کولو اتومات کولو لپاره ، وړاندیز شوی سکریپټ.

eBPF یو بایټکوډ ژباړونکی دی چې په لینکس کرنل کې جوړ شوی چې تاسو ته اجازه درکوي د شبکې عملیاتي هینډلرونه رامینځته کړئ ، د سیسټم فعالیت نظارت وکړئ ، د سیسټم تلیفونونه مداخله وکړئ ، کنټرول لاسرسی ، د وخت ساتلو سره پیښې پروسس کړئ (perf_event_open) ، د عملیاتو فریکوینسي او وخت محاسبه کړئ ، تعقیب ترسره کړئ kprobes/uprobes/tracepoints کارول. د JIT تالیف کارولو څخه مننه ، بایټ کوډ په الوتنه کې د ماشین لارښوونو ته ژباړل شوی او د اصلي کوډ فعالیت سره اجرا کیږي. DTrace د eBPF په سر کې پلي کیدی شي، ورته ورته چې دا د eBPF په سر کې دی کار د موندلو موجوده وسیلې.

د DTrace ټیکنالوژي د سولاریس عملیاتي سیسټم لپاره رامینځته شوې ترڅو د سیسټم کرنل او پای غوښتنلیکونو متحرک تعقیب ستونزې حل کړي ، کارونکي ته دا وړتیا ورکوي چې د سیسټم چلند په تفصیل سره وڅاري او په ریښتیني وخت کې ستونزې تشخیص کړي. د ډیبګ کولو پرمهال ، DTrace د مطالعې شوي غوښتنلیکونو عملیات اغیزه نه کوي او په هیڅ ډول د دوی فعالیت اغیزه نه کوي ، کوم چې په الوتنه کې د چلولو سیسټمونو تحلیل تنظیم کولو ته اجازه ورکوي. د DTrace له قوتونو څخه، AWK ته ورته د لوړې کچې D ژبه یادونه شوې، په کوم کې چې د ټریس سکریپټونو لیکل خورا اسانه دي کله چې د EBPF لپاره په C, Python او Lua کې د بهرني کتابتونونو سره وړاندیز شوي هینډلرونو لیکلو وسیلو کارولو په پرتله. .

د اوریکل انجینران د GCC لپاره د eBPF بیکینډ جوړولو باندې هم کار کوي او دمخه یې خپور کړی پیچ ترتیب په GCC کې د eBPF مالتړ مدغم کول او لاسته راوړل په GNU binutils کې د eBPF ملاتړ کولو کوډ په شمول. په پیل کې، د eBPF مالتړ لپاره شالید د LLVM ټیکنالوژیو پراساس دی، مګر اوریکل د EBPF لپاره د برنامو رامینځته کولو منظم وړتیا GCC کې ظهور سره علاقه لري ، کوم چې به د لینکس کرنل رامینځته کولو او د eBPF لپاره برنامې رامینځته کولو دواړو لپاره د یوې وسیلې کارولو اجازه ورکړي.

د بایټ کوډ رامینځته کولو لپاره د شالید سربیره ، د GCC لپاره وړاندیز شوي پیچونو کې د eBPF لپاره د libgcc بندر او د ELF فایلونو رامینځته کولو وسیلې هم شاملې دي ، دا ممکنه کوي چې د کرنل لخوا چمتو شوي لوډرونو په کارولو سره د eBPF مجازی ماشین کې کوډ اجرا کړي. د اوس لپاره، C کوډ په بایټکوډ کې ژباړل کیدی شي (د ټولې ژبې ځانګړتیاوې شتون نلري)، مګر په راتلونکي کې تمه کیږي چې د کارولو لپاره د C ژبې ځانګړتیاوې پراخې کړي، د نورو ژبو لپاره ملاتړ اضافه کړي، سمیلیټر رامینځته کړي، او د GCC ملاتړ اضافه کړي. د eBPF پروګرامونو د ډیبګ کولو لپاره پرته له دې چې کرنل ته پورته شي.

سرچینه: opennet.ru

Add a comment