Oracle لينڪس لاءِ DTrace ٻيهر ڪم ڪرڻ جو ارادو رکي ٿو eBPF استعمال ڪندي

Oracle ڪمپني ٻڌايو DTrace سان لاڳاپيل تبديلين کي اپ اسٽريم ۾ منتقل ڪرڻ تي ڪم ڪرڻ ۽ معياري لينڪس ڪنيل انفراسٽرڪچر جي مٿان DTrace متحرڪ ڊيبگنگ ٽيڪنالاجي کي لاڳو ڪرڻ جو منصوبو، يعني سب سسٽم استعمال ڪرڻ جهڙوڪ eBPF. شروعات ۾، لينڪس تي DTrace استعمال ڪرڻ سان بنيادي مسئلو لائسنس جي سطح تي غير مطابقت هئي، پر 2018 ۾ Oracle بحال ٿيل DTrace ڪوڊ GPLv2 تحت.

DTrace اڳ ۾ ئي وڏو وقت Oracle لينڪس ڊسٽريبيوشن لاءِ وڌايل ڪرنل جي حصي طور پيش ڪيو ويو آهي، پر ان جي ٻين تقسيم ۾ استعمال لاءِ ان کي اضافي ڪنيل پيچس جي استعمال جي ضرورت آهي، جيڪا هن ٽيڪنالاجي جي استعمال کي محدود ڪري ٿي. مثال طور، Oracle تيار ڪيل Fedora Linux تي DTrace انسٽال ڪرڻ ۽ استعمال ڪرڻ لاءِ تفصيلي هدايتون. انسٽاليشن لاء اسيمبلي جي ضرورت آهي اوزار ۽ لينڪس ڪنيل جو استعمال ٻيهر تعمير ڪيو ويو پيچ. Oracle ۽ Fedora پيچز سان ڪرنل بلڊنگ جي عمل کي خودڪار ڪرڻ لاءِ، تجويز ڪيل آھي اسڪرپٽ.

eBPF هڪ بائيٽ ڪوڊ مترجم آهي جيڪو لينڪس ڪرنل ۾ ٺاهيو ويو آهي جيڪو توهان کي اجازت ڏئي ٿو نيٽ ورڪ آپريشن هينڊلر ٺاهڻ، سسٽم جي آپريشن مانيٽر ڪرڻ، سسٽم ڪالز کي ڪنٽرول ڪرڻ، ڪنٽرول رسائي، پروسيس ايونٽس سان ٽائم ڪيپنگ (perf_event_open)، ڳڻپ جي تعدد ۽ عمل جي عمل جو وقت، ڪيپروبز استعمال ڪندي ٽريڪنگ انجام ڏيڻ. /uprobes/tracepoints. JIT تاليف جي استعمال جي مهرباني، bytecode کي فلائي تي مشين جي هدايتن ۾ ترجمو ڪيو ويو آهي ۽ مقامي ڪوڊ جي ڪارڪردگي سان عمل ڪيو ويو آهي. DTrace eBPF جي چوٽي تي لاڳو ٿي سگھي ٿو، ساڳي طرح اھو ڪيئن لاڳو ٿئي ٿو eBPF جي چوٽي تي работают موجود ٽريڪنگ اوزار.

DTrace ٽيڪنالاجي سولاريس آپريٽنگ سسٽم لاءِ ترقي ڪئي وئي ته جيئن متحرڪ طور تي سسٽم ڪرنل کي ٽريڪ ڪرڻ ۽ ايپليڪيشنن کي ختم ڪرڻ جي مسئلي کي حل ڪري، صارف کي سسٽم جي رويي کي تفصيل سان مانيٽر ڪرڻ ۽ حقيقي وقت ۾ مسئلن جي تشخيص ڪرڻ جي صلاحيت ڏئي ٿي. ڊيبگنگ جي عمل دوران، DTrace مطالعي جي تحت ايپليڪيشنن جي آپريشن کي متاثر نٿو ڪري ۽ ڪنهن به طريقي سان انهن جي ڪارڪردگي تي اثر انداز نٿو ڪري، جيڪا توهان کي پرواز تي هلندڙ نظام جي تجزيو کي منظم ڪرڻ جي اجازت ڏئي ٿي. DTrace جي طاقتن مان هڪ اعليٰ سطحي ڊي ٻولي آهي، AWK جهڙي، جنهن ۾ سي، پٿون ۽ لوا ۾ ٻاهرين لائبريرين سان گڏ eBPF هينڊلر لکڻ لاءِ پيش ڪيل اوزار استعمال ڪرڻ جي ڀيٽ ۾ ٽريڪنگ اسڪرپٽ ٺاهڻ تمام آسان آهي.

Oracle جا انجنيئر پڻ GCC لاءِ eBPF پس منظر ٺاهڻ تي ڪم ڪري رهيا آهن ۽ اڳ ۾ ئي شايع ڪري چڪا آهن پيچ سيٽ EBPF سپورٽ کي GCC ۾ ضم ڪرڻ ۽ حاصل ڪيو GNU binutils ۾ eBPF کي سپورٽ ڪرڻ لاءِ ڪوڊ سميت. شروعات ۾، eBPF سپورٽ لاءِ پس منظر LLVM ٽيڪنالاجيز تي ٻڌل آهي، پر Oracle GCC ۾ اي بي پي ايف لاءِ پروگرام تيار ڪرڻ جي معياري صلاحيت جي ظهور ۾ دلچسپي رکي ٿي، جيڪا لينڪس ڪنيل جي تعمير ۽ پروگرامن جي تعمير لاءِ ٻنهي لاءِ هڪ ٽول ڪٽ جي استعمال جي اجازت ڏئي ٿي. eBPF لاء.

بائيٽ ڪوڊ نسل جي پسمنظر کان علاوه، GCC لاءِ تجويز ڪيل پيچس ۾ eBPF لاءِ libgcc پورٽ ۽ ELF فائلون پيدا ڪرڻ لاءِ اوزار پڻ شامل آهن، اهو ممڪن بڻائي ٿو ته ڪوڊ کي اي بي پي ايف ورچوئل مشين ۾ ڪنيل مهيا ڪيل لوڊرز استعمال ڪندي. في الحال، سي ٻولي ۾ ڪوڊ بائيٽ ڪوڊ ۾ ترجمو ڪري سگھجي ٿو (سڀني ٻولي جون خاصيتون موجود نه آھن)، پر مستقبل ۾ اھو توقع آھي ته استعمال لاءِ موجود سي ٻوليءَ جي صلاحيتن کي وڌايو ويندو، ٻين ٻولين لاءِ سپورٽ شامل ڪيو ويندو، ھڪڙو سموليٽر ٺاھيو، ۽ شامل ڪريو GCC سپورٽ eBPF پروگرامن کي ڊيبگ ڪرڻ لاءِ بغير ڪرنل ۾ لوڊ ڪرڻ جي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو