اوریکل کمپنی
DTrace پہلے ہی
eBPF لینکس کرنل میں بنایا گیا ایک بائیک کوڈ انٹرپریٹر ہے جو آپ کو نیٹ ورک آپریشن ہینڈلرز بنانے، سسٹم کے آپریشن کی نگرانی، سسٹم کالز کو کنٹرول کرنے، کنٹرول تک رسائی، ٹائم کیپنگ (perf_event_open) کے ساتھ ایونٹس پر کارروائی کرنے، آپریشنز کی فریکوئنسی اور عمل کے وقت کی گنتی، kprobes کا استعمال کرتے ہوئے ٹریسنگ کرنے کی اجازت دیتا ہے۔ /uprobes/ٹریس پوائنٹس۔ جے آئی ٹی کمپلیشن کے استعمال کی بدولت، بائٹ کوڈ کا ترجمہ مشین کی ہدایات میں کیا جاتا ہے اور مقامی کوڈ کی کارکردگی کے ساتھ عمل میں لایا جاتا ہے۔ DTrace کو eBPF کے اوپر لاگو کیا جا سکتا ہے، جیسا کہ اسے eBPF کے اوپر لاگو کیا جاتا ہے۔
DTrace ٹیکنالوجی سولاریس آپریٹنگ سسٹم کے لیے تیار کی گئی تھی تاکہ سسٹم کرنل اور اینڈ ایپلی کیشنز کو متحرک طور پر ٹریس کرنے کے مسئلے کو حل کیا جا سکے، جس سے صارف کو سسٹم کے رویے کی تفصیل سے نگرانی کرنے اور حقیقی وقت میں مسائل کی تشخیص کرنے کی صلاحیت ملتی ہے۔ ڈیبگنگ کے عمل کے دوران، DTrace زیر مطالعہ ایپلی کیشنز کے آپریشن کو متاثر نہیں کرتا ہے اور کسی بھی طرح سے ان کی کارکردگی کو متاثر نہیں کرتا ہے، جو آپ کو فلائی پر چلنے والے سسٹمز کے تجزیہ کو منظم کرنے کی اجازت دیتا ہے۔ DTrace کی ایک خوبی AWK کی طرح کی اعلیٰ سطحی D زبان ہے، جس میں بیرونی لائبریریوں کے ساتھ C، Python اور Lua میں eBPF ہینڈلرز لکھنے کے لیے پیش کردہ ٹولز کا استعمال کرنے کے مقابلے میں ٹریسنگ اسکرپٹ بنانا بہت آسان ہے۔
Oracle کے انجینئرز GCC کے لیے eBPF بیک اینڈ بنانے پر بھی کام کر رہے ہیں اور پہلے ہی شائع کر چکے ہیں۔
بائیک کوڈ جنریشن بیک اینڈ کے علاوہ، GCC کے لیے مجوزہ پیچ میں eBPF کے لیے libgcc پورٹ اور ELF فائلیں بنانے کے لیے ٹولز بھی شامل ہیں، جس سے کرنل کے فراہم کردہ لوڈرز کا استعمال کرتے ہوئے eBPF ورچوئل مشین میں کوڈ پر عمل درآمد ممکن ہو جاتا ہے۔ ابھی کے لیے، C زبان میں کوڈ کا ترجمہ بائیک کوڈ میں کیا جا سکتا ہے (زبان کی تمام خصوصیات دستیاب نہیں ہیں)، لیکن مستقبل میں اس سے استعمال کے لیے دستیاب C زبان کی صلاحیتوں کو وسعت دینے، دوسری زبانوں کے لیے سپورٹ شامل کرنے، ایک سمیلیٹر بنانے، اور کرنل میں لوڈ کیے بغیر ای بی پی ایف پروگراموں کو ڈیبگ کرنے کے لیے جی سی سی سپورٹ شامل کریں۔
ماخذ: opennet.ru