आया, Rust . में eBPF कंट्रोलर बनाने वाली पहली लाइब्रेरी

लिनुस टोरवाल्ड्स के साथ-साथ कई डेवलपर्स भी कर्नेल और विभिन्न वितरण रस्ट के बारे में अपनी पसंद जाहिर की है और यहां तक ​​कि एक से अधिक अवसरों पर लिनक्स कर्नेल पर इस प्रोग्रामिंग भाषा में नियंत्रकों के कार्यान्वयन का विषय प्रस्तुत किया गया है।

और इस पर, विभिन्न कार्यों को पहले ही ज्ञात किया जा चुका है, जिनमें से हमने पहले ही यहां ब्लॉग पर उल्लेख किया है और हम उदाहरण के लिए उल्लेख कर सकते हैं प्रयोग सफल उपयोगिताओं के वैकल्पिक सूट, कोरुटिल्स से, रस्ट में फिर से लिखा गया (इसमें सॉर्ट, कैट, चामोड, चाउन, क्रोट, सीपी, डेट, डीडी, इको, होस्टनाम, आईडी, एलएन और एलएस जैसी उपयोगिताएं शामिल हैं)।

इसे देखते हुए लिनस टोरवाल्ड्स ने इस पहल के पक्ष में पूरी तरह से अपनी बात नहीं रखी है और नकारात्मक बिंदु व्यक्त किये हैं (आप विवरण देख सकते हैं) निम्नलिखित लिंक में.)

लिनस की कठोर आलोचना के बावजूद, कार्यों कार्यान्वयन के बारे में कर्नेल में जंग का आगे बढ़ना बंद नहीं हुआ है और हाल ही में अया लाइब्रेरी का पहला संस्करण पेश किया गया था, जो आपको रस्ट में eBPF ड्राइवर बनाने की अनुमति देता है जो एक विशेष JIT वर्चुअल मशीन में लिनक्स कर्नेल के अंदर चलता है।

अन्य ईबीपीएफ विकास उपकरणों के विपरीत, अया libbpf और BCC कंपाइलर का उपयोग नहीं करता हैलेकिन रस्ट में लिखा अपना स्वयं का कार्यान्वयन प्रदान करता है यह कर्नेल सिस्टम कॉल तक सीधे पहुंचने के लिए libc क्रेट पैकेज का उपयोग करता है। अया के निर्माण के लिए सी भाषा उपकरण या कर्नेल हेडर की आवश्यकता नहीं है।

उन लोगों के लिए जो ईबीपीएफ से अनजान, उन्हें पता होना चाहिए कि यह एक बाइटकोड दुभाषिया है लिनक्स कर्नेल में बनाया गया है जो आपको नेटवर्क संचालन नियंत्रक बनाने, सिस्टम संचालन की निगरानी करने, सिस्टम कॉल को इंटरसेप्ट करने, पहुंच को नियंत्रित करने, समय के साथ घटनाओं को संसाधित करने, संचालन की आवृत्ति और समय की गणना करने और kprobes/uprobes/tracepoints का उपयोग करके ट्रैक करने की अनुमति देता है।

जेआईटी संकलन के लिए धन्यवाद, बाइटकोड को तुरंत मशीन निर्देशों में अनुवादित किया जाता है और मूल कोड के प्रदर्शन के साथ चलता है। एक्सडीपी पैकेट डीएमए बफर तक सीधी पहुंच के साथ, नेटवर्क ड्राइवर स्तर पर बीपीएफ प्रोग्राम चलाने का एक साधन प्रदान करता है, जिससे आप उच्च नेटवर्क लोड स्थितियों के लिए उच्च प्रदर्शन ड्राइवर बना सकते हैं।

अया के बारे में

उल्लिखित प्रमुख विशेषताओं में से अया के हम उसे पा सकते हैं बीटीएफ के लिए समर्थन है (बीपीएफ प्रकार प्रारूप), जो वर्तमान कर्नेल द्वारा प्रदान किए गए प्रकारों की जांच और तुलना करने के लिए बीपीएफ स्यूडोकोड में प्रकार की जानकारी प्रदान करता है। बीटीएफ का उपयोग सार्वभौमिक ईबीपीएफ ड्राइवरों को बनाना संभव बनाता है जिनका उपयोग लिनक्स कर्नेल के विभिन्न संस्करणों के साथ पुन: संकलित किए बिना किया जा सकता है।

उसके साथ ही बीपीएफ-टू-बीपीएफ कॉल के लिए समर्थन, वैश्विक चर और प्रारंभकर्ता, जो ईबीपीएफ में काम को ध्यान में रखते हुए कार्यों को ओवरराइड करते हुए, निष्पादन समय के रूप में एआईए का उपयोग करके पारंपरिक कार्यक्रमों के अनुरूप ईबीपीएफ के लिए प्रोग्राम डिजाइन करने की अनुमति देता है।

दूसरी ओर, यह भी है आंतरिक कर्नेल प्रकारों के लिए समर्थन, जिसमें नियमित सरणियाँ, हैश मैप, स्टैक, क्यू, स्टैक ट्रेस और सॉकेट और प्रदर्शन ट्रैकिंग के लिए संरचनाएं शामिल हैं।

भी विभिन्न प्रकार के eBTF प्रोग्राम बनाने की क्षमता रखता है, जिसमें ट्रैफ़िक फ़िल्टरिंग और प्रबंधन के लिए प्रोग्राम, सीग्रुप और विभिन्न सॉकेट ड्राइवर, एक्सडीपी प्रोग्राम और नॉन-ब्लॉकिंग टोक्यो मोड और एसिंक-एसटीडी में एसिंक्रोनस रिक्वेस्ट प्रोसेसिंग के लिए प्लेटफ़ॉर्म समर्थन भी शामिल है।
तेज़ निर्माण, कर्नेल बिल्ड या कर्नेल हेडर से बंधा नहीं।

यह उल्लेख करना महत्वपूर्ण है परियोजना को अभी भी प्रायोगिक माना जाता है, क्योंकि एपीआई अभी तक स्थिर नहीं हुई है और निरंतर विकसित हो रहा है। इसके अलावा, सभी कल्पित कार्यों को अभी तक लागू नहीं किया गया है।

साल के अंत तक, डेवलपर्स को अया की कार्यक्षमता को libbpf के बराबर लाने की उम्मीद है। और जनवरी 2022 में पहला स्थिर संस्करण तैयार किया जाएगा। लिनक्स कर्नेल के लिए रस्ट कोड लिखने के लिए आवश्यक अया के हिस्सों को ईबीपीएफ कार्यक्रमों को लोड करने, संलग्न करने और उनके साथ इंटरैक्ट करने के लिए उपयोग किए जाने वाले यूजरस्पेस घटकों के साथ संयोजित करने की भी योजना बनाई गई है।

अंत में यदि आप अधिक जानने में रुचि रखते हैं इसके बारे में, आप कर सकते हैं निम्नलिखित लिंक में विवरण की जाँच करें।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।