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

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

जंग समर्थन को प्रयोगात्मक माना जाता है, लेकिन लिनक्स-अगली शाखा में इसके शामिल होने पर पहले ही सहमति हो चुकी है। विकास को Google और ISRG (इंटरनेट सुरक्षा अनुसंधान समूह) संगठन द्वारा वित्त पोषित किया जाता है, जो Let's Encrypt परियोजना का संस्थापक है और HTTPS के प्रचार और इंटरनेट सुरक्षा में सुधार के लिए प्रौद्योगिकियों के विकास में योगदान देता है।

यह याद रखना चाहिए कि प्रस्तावित परिवर्तन कर्नेल ड्राइवरों और मॉड्यूल को विकसित करने के लिए रस्ट को दूसरी भाषा के रूप में उपयोग करने की अनुमति देते हैं।

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

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

पैच का नया संस्करण पैच के पहले और दूसरे संस्करण की चर्चा के दौरान की गई टिप्पणियों को समाप्त करना जारी रखता है और सबसे उल्लेखनीय परिवर्तन जो हम पा सकते हैं:

जंग 1.57 स्थिर संस्करण में परिवर्तित एक संदर्भ संकलक के रूप में और रस्ट 2021 भाषा के स्थिर संस्करण के लिए बाध्यकारी सुरक्षित किया गया है। रस्ट 2021 पी विनिर्देश के लिए संक्रमणऐसी अस्थिर सुविधाओं का उपयोग करने से बचने के लिए काम शुरू करने की अनुमति दी गई है const_fn_transmute, const_panic, const_unreachable_unchecked और core_panic और try_reserve जैसे पैच में।

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

संभावित कंपाइलर चेतावनियों को हटाने के लिए कोड साफ़ किया गया CONFIG_WERROR मोड में कर्नेल को संकलित करते समय। जब रस्ट में कोड बनाया जाता है, तो अतिरिक्त डायग्नोस्टिक कंपाइलर मोड और क्लीपी लिंटर चेतावनियां शामिल होती हैं।

उन्होंने प्रस्तावित किया seqlocks का उपयोग करने के लिए सार (सीक्वेंस लॉक), पावर मैनेजमेंट के लिए कॉलबैक कॉल, मेमोरी I / O (readX / राइटएक्स), इंटरप्ट और थ्रेड हैंडलर, GPIO, डिवाइस एक्सेस, ड्राइवर और रस्ट कोड में क्रेडेंशियल।

चालक विकास उपकरण का विस्तार किया गया है स्थानांतरित करने योग्य म्यूटेक्स, बिट इटरेटर्स, पॉइंटर्स पर सरलीकृत बाइंडिंग, बेहतर फॉल्ट डायग्नोस्टिक्स और डेटा बस स्वतंत्र बुनियादी ढांचे के उपयोग के साथ।

Ref प्रकार का उपयोग करके लिंक के साथ कार्य में सुधार किया गया है refcount_t बैकएंड के आधार पर सरलीकृत, जो संदर्भों की गणना करने के लिए समान नाम के केंद्रीय API का उपयोग करता है। मानक मैपिंग लाइब्रेरी में प्रदान किए गए आर्क और आरसी प्रकारों के लिए समर्थन हटा दिया गया है और कर्नेल स्तर पर निष्पादित कोड में उपलब्ध नहीं है (लाइब्रेरी के लिए, इन प्रकारों को अक्षम करने के लिए विकल्प तैयार किए गए हैं)।

PL061 GPIO ड्राइवर का एक संस्करण, जंग में फिर से लिखा गया, पैच में जोड़ा गया है। ड्राइवर की एक विशेषता यह है कि इसका लाइन-बाय-लाइन कार्यान्वयन मौजूदा C GPIO ड्राइवर को दोहराता है। उन डेवलपर्स के लिए जो रस्ट में बिल्डिंग कंट्रोलर्स से परिचित होना चाहते हैं, एक लाइन-बाय-लाइन तुलना तैयार की गई है, जो यह समझने में मदद करती है कि रस्ट में क्या बनाता है सी कोड बन गया है।

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

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


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

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

*

*

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