GCC ھاڻي eBPF کي گڏ ڪرڻ لاءِ ھڪڙو پس منظر شامل آھي

جي سي سي ڪمپلر سوٽ ۾ شامل اختيار ڪيو لينڪس ڪنيل ۾ ٺهيل بائيٽ ڪوڊ مترجم لاءِ پروگرام گڏ ڪرڻ لاءِ ڪوڊ اي بي پي ايف. JIT تاليف جي استعمال جي مهرباني، ڪرنل بائيٽ ڪوڊ فلائي تي مشين جي هدايتن ۾ ترجمو ڪيو ويو آهي ۽ مقامي ڪوڊ جي ڪارڪردگي سان عمل ڪيو ويو آهي. eBPF سپورٽ سان پيچ قبول ڪيو برانچ ۾ جتان GCC 10 رليز ترقي ڪئي وئي آهي.

بائيٽ ڪوڊ جنريشن لاءِ پسمنظر کان علاوه، GCC ۾ eBPF لاءِ libgcc پورٽ ۽ ELF فائلون پيدا ڪرڻ لاءِ اوزار شامل آھن جيڪي ڪنيل مهيا ڪيل لوڊرز استعمال ڪندي eBPF ورچوئل مشين ۾ ڪوڊ تي عمل ڪرڻ ممڪن بڻائين ٿا. GCC ۾ eBPF کي سپورٽ ڪرڻ لاءِ پيچ تيار ڪيا ويا Oracle جي انجنيئرن پاران، جيڪي اڳ ۾ ئي هئا مهيا ڪيل GNU binutils ۾ eBPF سپورٽ. GDB لاءِ هڪ سموليٽر ۽ پيچ پڻ ترقيءَ ۾ آهن، جيڪي توهان کي اجازت ڏيندا ته eBPF پروگرامن کي ڊيبگ ڪرڻ کان سواءِ انهن کي ڪرنل ۾ لوڊ ڪرڻ جي.

eBPF لاءِ پروگرامن کي C ٻوليءَ جي ذيلي سيٽ ۾ بيان ڪري سگھجي ٿو، مرتب ڪيل ۽ ڪرنل ۾ لوڊ ڪيو ويو. عمل ڪرڻ کان اڳ، eBPF مترجم اجازت ڏنل هدايتن جي استعمال لاءِ بائيٽ ڪوڊ چيڪ ڪري ٿو ۽ ڪوڊ تي ڪجهه ضابطا لاڳو ڪري ٿو (مثال طور، ڪو لوپ نه).
شروعات ۾، LLVM تي ٻڌل اوزار استعمال ڪيا ويا لينڪس تي اي بي پي ايف کي گڏ ڪرڻ لاء. جي سي سي ۾ اي بي پي ايف سپورٽ دلچسپ آهي ڇو ته اها توهان کي اجازت ڏئي ٿي هڪ ٽول ڪٽ استعمال ڪرڻ لاءِ لينڪس ڪنيل ۽ اي بي پي ايف پروگرام ٺاهڻ لاءِ، بغير اضافي انحصار کي انسٽال ڪرڻ جي.

eBPF پروگرامن جي صورت ۾، توھان ٺاھي سگھو ٿا نيٽ ورڪ آپريشن ھينڊلر، ٽريفڪ کي فلٽر ڪري سگھوٿا، بينڊوڊٿ جو انتظام ڪري سگھو ٿا، سسٽم مانيٽر ڪري سگھو ٿا، سسٽم ڪالز کي ڪنٽرول ڪري سگھو ٿا، ڪنٽرول پھچائي سگھو ٿا، عملن جي تعدد ۽ وقت جو حساب ڪري سگھو ٿا، ۽ kprobes/uprobes/tracepoints استعمال ڪندي ٽريڪنگ ڪري سگھو ٿا.

جو ذريعو: opennet.ru

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