Linux पर रस्ट ड्राइवर समर्थन के लिए पैच का दूसरा संस्करण पहले ही शिप किया जा चुका है

इस साल मार्च में linux-next शाखा पर जिसमें उस समय यह Linux कर्नेल 5.13 के लिए काम कर रहा था, डिवाइस ड्राइवरों को विकसित करने के लिए घटकों का एक प्रारंभिक सेट शामिल किया गया था भाषा जंग और अब एक दूसरे संस्करण को शामिल करने का अनुरोध किया गया है लिनक्स कर्नेल में जंग समर्थन जोड़ने के लिए पैच की।

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

Linux पर रस्ट ड्राइवर
संबंधित लेख:
Prossimo, Rust . के साथ Linux कर्नेल मेमोरी को सुरक्षित करने के लिए एक ISRG प्रोजेक्ट

मिगुएल ओजेदा द्वारा भेजा गया अनुरोध दूसरा अद्यतन संस्करण है रस्ट भाषा में डिवाइस ड्राइवरों के विकास के लिए घटकों की संख्या और जिसमें पैच के पहले संस्करण की चर्चा के दौरान की गई टिप्पणियों को हटा दिया गया है और जिसमें लिनुस टॉर्वाल्ड्स पहले ही चर्चा में शामिल हो गए हैं और कुछ बिट संचालन को संसाधित करने के लिए तर्क बदलने का सुझाव दिया है।

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

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

उन परिवर्तनों में से जो सामने आते हैं पैच के इस नए संस्करण का उल्लेख किया गया है:

  • मेमोरी एलोकेशन कोड मेमोरी के बाहर होने जैसी त्रुटि होने पर पैनिक स्थिति उत्पन्न करने की संभावना को रोकता है।
  • शामिल है जंग आवंटन पुस्तकालय का एक प्रकार, जिसमें ताले को संभालने के लिए कोड को फिर से काम किया गया है, लेकिन अंतिम लक्ष्य कर्नेल के लिए सभी आवश्यक सुविधाओं को आवंटन के मुख्य संस्करण में लाना है (परिवर्तन पहले ही तैयार किए जा चुके हैं और मानक रस्ट लाइब्रेरी में स्थानांतरित कर दिए गए हैं)।
  • रात्रिकालीन बिल्ड के बजाय, अब बीटा और स्थिर संस्करणों का उपयोग किया जा सकता है रस्ट-सक्षम कर्नेल को संकलित करने के लिए rustc कंपाइलर। वर्तमान में rustc 1.54-beta1 का उपयोग संदर्भ संकलक के रूप में किया जाता है, लेकिन महीने के अंत में 1.54 रिलीज़ के बाद, इसे संदर्भ संकलक के रूप में समर्थित किया जाएगा।
  • मानक जंग विशेषता "# [परीक्षण]" का उपयोग करके परीक्षण लिखने के लिए जोड़ा गया समर्थन और परीक्षण के रूप में दस्तावेज़ीकरण से नमूना कोड का उपयोग करने के लिए सिद्धांतों का उपयोग करने की क्षमता।
  • पहले से समर्थित x32_86 और ARM64 के अलावा ARM64 और RISCV आर्किटेक्चर के लिए जोड़ा गया समर्थन।
    बेहतर GCC कार्यान्वयन रस्ट (रस्ट के लिए GCC फ्रंटएंड) और rustc_codegen_gcc (GCC के लिए rustc बैकएंड), जो अब सभी बेंचमार्क को पार कर गया है।
  • अमूर्तता का नया स्तर रस्ट प्रोग्राम के लिए C में लिखे कर्नेल मैकेनिज्म का उपयोग करना, जैसे कि ट्री, रेफरेंस काउंटिंग ऑब्जेक्ट्स, फाइल डिस्क्रिप्टर, टास्क, फाइल और I / O वैक्टर बनाना।
  • ड्राइवर विकास घटकों ने "file_operations" मॉड्यूल, "मॉड्यूल!" मैक्रो, मैक्रो लॉगिंग, और अल्पविकसित ड्राइवर (जांच और हटाएं) के लिए समर्थन में सुधार किया है।
  • फ़ाइल डिस्क्रिप्टर और एलएसएम लिंक पास करने के लिए बाइंडर के पास समर्थन है।
  • रास्पबेरी पाई बोर्डों के लिए एक हार्डवेयर यादृच्छिक संख्या जनरेटर के लिए रस्ट ड्राइवर, bcm2835-rng का एक अधिक कार्यात्मक उदाहरण प्रस्तावित है।

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


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

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

*

*

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