زنگ ۾ اي بي پي ايف هينڊلر ٺاهڻ لاءِ آئيا لائبريري متعارف ڪرايو

Aya لائبريري جو پهريون رليز پيش ڪيو ويو آهي، جيڪو توهان کي اجازت ڏئي ٿو ته اي بي پي ايف هينڊلر ٺاهڻ جي زنگ ٻولي ۾ جيڪي JIT سان گڏ هڪ خاص ورچوئل مشين ۾ لينڪس ڪرنل اندر هلن ٿا. ٻين eBPF ڊولپمينٽ ٽولز جي برعڪس، Aya libbpf ۽ bcc compiler استعمال نه ڪندو آهي، پر ان جي بدران پيش ڪري ٿو پنهنجو پاڻ تي عمل درآمد Rust ۾ لکيل آهي، جيڪو استعمال ڪري ٿو libc crate پيڪيج سڌو سنئون ڪنيل سسٽم ڪالن تائين رسائي لاءِ. بلڊنگ آئيا کي سي ٻولي ٽولنگ يا ڪنيل هيڊر فائلن جي ضرورت ناهي. لائبريري ڪوڊ MIT ۽ Apache 2.0 لائسنس تحت ورهايو ويو آهي.

اھڙا اھڙا

  • BTF (BPF ٽائيپ فارميٽ) لاءِ سپورٽ، جيڪا BPF pseudocode ۾ قسم جي معلومات مهيا ڪري ٿي ٽائپ چيڪنگ ۽ ميپنگ لاءِ موجوده ڪنيل پاران مهيا ڪيل قسمن جي. BTF جو استعمال ان کي ممڪن بڻائي ٿو عالمي eBPF هينڊلر ٺاهڻ جيڪي لينڪس ڪنييل جي مختلف ورزن سان گڏ بغير استعمال ڪري سگھجن ٿيون.
  • ”bpf-to-bpf“ ڪالن لاءِ سپورٽ، عالمي متغير ۽ شروعات ڪندڙ، جيڪا توهان کي اجازت ڏئي ٿي eBPF لاءِ پروگرامن کي ڊزائين ڪرڻ جي ساڳي طريقي سان باقاعده پروگرامن لاءِ جيڪي aya کي رن ٽائم جي طور تي استعمال ڪن ٿيون جيڪي eBPF ۾ ڪم جي حساب سان ڪم کي نئين سر وضاحت ڪري ٿو.
  • ڪنيل جي مختلف قسمن لاءِ سپورٽ، بشمول باقاعده صفون، هيش نقشا، اسٽيڪ، قطار، اسٽيڪ جا نشان، گڏوگڏ ساکٽ ۽ ڪارڪردگي ٽريڪنگ ڍانچي.
  • مختلف قسم جا eBTF پروگرام ٺاهڻ جي صلاحيت، بشمول ٽرئفڪ کي فلٽر ڪرڻ ۽ انتظام ڪرڻ جا پروگرام، سي گروپ هينڊلر ۽ مختلف ساکٽ آپريشنز، XDP پروگرام.
  • نان بلاڪنگ موڊ ٽوڪيو ۽ async-std ۾ هم وقت سازي جي درخواست جي پروسيسنگ لاءِ پليٽ فارمن جي سپورٽ.
  • فاسٽ اسيمبلي، ڪنييل اسيمبليءَ ۽ ڪنيل هيڊر فائلن سان ڪنهن به ڪنيڪشن کان سواءِ.

پروجيڪٽ اڃا تائين تجرباتي سمجهيو ويندو آهي - API اڃا تائين مستحڪم نه ڪيو ويو آهي ۽ ترقي جاري آهي. گڏوگڏ، سڀئي منصوبابندي جا موقعا اڃا تائين محسوس نه ڪيا ويا آهن. سال جي آخر تائين، ڊولپرز اميد ڪن ٿا ته آيا جي ڪارڪردگي کي برابري ۾ آڻيندي libbpf سان، ۽ جنوري 2022 ۾ پهريون مستحڪم رليز ٺاهي. اتي پڻ منصوبا آهن ته آيا جي حصن کي گڏ ڪرڻ جي ضرورت آهي Rust ڪوڊ لکڻ لاءِ لينڪس ڪنيل لاءِ استعمال ڪندڙ-اسپيس حصن سان جيڪي لوڊ ڪرڻ، ڳنڍڻ ۽ eBPF پروگرامن سان رابطو ڪرڻ لاءِ استعمال ڪيا ويندا آهن.

اچو ته ياد رکون ته eBPF هڪ بائيٽ ڪوڊ مترجم آهي جيڪو لينڪس ڪرنل ۾ ٺهيل آهي، جيڪو توهان کي نيٽ ورڪ آپريشن هينڊلر ٺاهڻ، سسٽم جي آپريشن کي مانيٽر ڪرڻ، سسٽم ڪالز کي مداخلت ڪرڻ، ڪنٽرول رسائي، پروسيسنگ واقعن کي برقرار رکڻ، وقت کي برقرار رکڻ، عملن جي تعدد ۽ وقت جي حساب ڪرڻ، انجام ڏيڻ جي اجازت ڏئي ٿو. kprobes/uprobes/tracepoints استعمال ڪندي ٽريڪنگ. JIT تاليف جي استعمال جي مهرباني، bytecode کي فلائي تي مشين جي هدايتن ۾ ترجمو ڪيو ويو آهي ۽ مقامي ڪوڊ جي ڪارڪردگي سان عمل ڪيو ويو آهي. XDP نيٽ ورڪ ڊرائيور جي سطح تي BPF پروگرامن کي هلائڻ لاءِ اوزار مهيا ڪري ٿو، سڌو سنئون ڊي ايم اي پيڪٽ بفر تائين رسائي جي صلاحيت سان، جيڪو توهان کي ڳري نيٽ ورڪ لوڊ هيٺ ڪم ڪرڻ لاءِ اعليٰ ڪارڪردگي وارا پروسيسر ٺاهڻ جي اجازت ڏئي ٿو.

جو ذريعو: opennet.ru

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