लिनक्समधील रस्ट ड्रायव्हर सपोर्टसाठी पॅचची तिसरी आवृत्ती आधीच प्रसिद्ध झाली आहे

दुसरी आवृत्ती प्रकाशित झाल्यानंतर सहा महिन्यांनी, मिगुएल ओजेडा, Rust-for-Linux प्रकल्पाचे लेखक, तिसऱ्या पर्यायाचा प्रस्ताव माहीत करून दिला लिनक्स कर्नलमधील रस्ट भाषेतील उपकरण ड्रायव्हर्सच्या विकासासाठी.

रस्ट सपोर्ट प्रायोगिक मानला जातो, परंतु लिनक्स-पुढील शाखेत त्याचा समावेश आधीच मान्य केला गेला आहे. विकासासाठी Google आणि ISRG (इंटरनेट सिक्युरिटी रिसर्च ग्रुप) संस्थेने निधी दिला आहे, जो Let's Encrypt प्रकल्पाचा संस्थापक आहे आणि HTTPS च्या प्रचारात आणि इंटरनेट सुरक्षा सुधारण्यासाठी तंत्रज्ञानाच्या विकासामध्ये योगदान देते.

हे लक्षात ठेवले पाहिजे की प्रस्तावित बदल कर्नल ड्रायव्हर्स आणि मॉड्यूल्स विकसित करण्यासाठी Rust ला दुसरी भाषा म्हणून वापरण्याची परवानगी देतात.

लिनक्सवर रस्ट ड्रायव्हर्स
संबंधित लेख:
लिनक्सवरील रस्ट ड्राइव्हर समर्थनासाठी पॅचेसची दुसरी आवृत्ती आधीच पाठविली गेली आहे

रस्ट सपोर्टची जाहिरात एक पर्याय म्हणून केली जाते जी डीफॉल्टनुसार सक्रिय नसते आणि यामुळे आवश्यक मूलभूत बिल्ड अवलंबनांमध्ये रस्ट समाविष्ट होत नाही. ड्रायव्हर डेव्हलपमेंटसाठी रस्ट वापरणे तुम्हाला कमीत कमी प्रयत्नात चांगले आणि अधिक सुरक्षित ड्रायव्हर्स तयार करण्यास अनुमती देईल, एकदा मोकळ्या मेमरी क्षेत्रामध्ये प्रवेश करण्याचा त्रास न करता, शून्य पॉइंटर्सचा संदर्भ न घेता आणि बफर मर्यादा ओलांडता.

पॅचची नवीन आवृत्ती पॅचच्या पहिल्या आणि दुसर्‍या आवृत्तीच्या चर्चेदरम्यान केलेल्या टिप्पण्या आणि आम्ही शोधू शकणारे सर्वात लक्षणीय बदल काढून टाकणे सुरू ठेवतो:

Rust 1.57 स्थिर आवृत्तीवर संक्रमण संदर्भ कंपायलर म्हणून आणि रस्ट 2021 भाषेच्या स्थिर आवृत्तीसाठी बंधनकारक सुरक्षित केले गेले आहे. रस्ट 2021 पी स्पेसिफिकेशनमध्ये संक्रमणअशा अस्थिर वैशिष्ट्यांचा वापर टाळण्यासाठी काम सुरू करण्याची परवानगी दिली const_fn_transmute, const_panic, const_unreachable_unchecked आणि core_panic आणि try_reserve सारख्या पॅचमध्ये.

हे देखील बाहेर उभे आहे alloc आवृत्तीचा विकास चालू आहे रस्ट लायब्ररीमधून, नवीन आवृत्तीमध्ये, कार्यक्षमता अक्षम करण्यासाठी "no_rc" आणि "no_sync" पर्याय लागू केले जातात जो कर्नलसाठी रस्ट कोडमध्ये वापरला जात नाही, ज्यामुळे लायब्ररी अधिक मॉड्यूलर बनते. मुख्य लायब्ररीमध्ये आवश्यक कर्नल बदल आणण्यासाठी आम्ही मुख्य ऍलोक डेव्हलपर्ससह कार्य करणे सुरू ठेवतो. "no_fp_fmt_parse" पर्याय, जो लायब्ररीला कर्नल स्तरावर कार्य करण्यासाठी आवश्यक आहे, तो Rust च्या बेस लायब्ररीमध्ये (कर्नल) हलविला गेला आहे.

संभाव्य कंपाइलर चेतावणी काढून टाकण्यासाठी कोड साफ केला CONFIG_WERROR मोडमध्ये कर्नल संकलित करताना. कोड रस्टमध्ये तयार केल्यावर, अतिरिक्त डायग्नोस्टिक कंपाइलर मोड आणि क्लिपी लिंटर चेतावणी समाविष्ट केल्या जातात.

त्यांनी प्रस्ताव मांडला seqlocks वापरण्यासाठी abstractions (क्रम लॉक), पॉवर मॅनेजमेंटसाठी कॉलबॅक कॉल, मेमरी I/O (readX/writerX), इंटरप्ट आणि थ्रेड हँडलर्स, GPIO, डिव्हाइस ऍक्सेस, ड्रायव्हर्स आणि रस्ट कोडमधील क्रेडेन्शियल्स.

ड्रायव्हरच्या विकासासाठी साधने विस्तारली आहेत पुनर्स्थित करण्यायोग्य म्यूटेक्स, बिट इटरेटर्स, पॉइंटर्सवर सरलीकृत बाइंडिंग्ज, सुधारित फॉल्ट डायग्नोस्टिक्स आणि डेटा बस स्वतंत्र पायाभूत सुविधांच्या वापरासह.

संदर्भ प्रकार वापरून दुव्यांसह कार्य सुधारित केले आहे सरलीकृत, refcount_t बॅकएंडवर आधारित, जे संदर्भ मोजण्यासाठी त्याच नावाचे मध्यवर्ती API वापरते. मानक मॅपिंग लायब्ररीमध्ये प्रदान केलेल्या आर्क आणि आरसी प्रकारांसाठी समर्थन काढून टाकले गेले आहे आणि कर्नल स्तरावर कार्यान्वित केलेल्या कोडमध्ये उपलब्ध नाही (लायब्ररीसाठीच, हे प्रकार अक्षम करण्यासाठी पर्याय तयार केले आहेत).

PL061 GPIO ड्रायव्हरची आवृत्ती, रस्टमध्ये पुन्हा लिहिलेली, पॅचमध्ये जोडली गेली आहे. ड्रायव्हरचे वैशिष्टय़ असे आहे की त्याचे जवळचे ओळ-दर-लाइन अंमलबजावणी विद्यमान C GPIO ड्रायव्हरची पुनरावृत्ती करते. ज्या विकासकांना रस्टमधील बिल्डिंग कंट्रोलरशी परिचित व्हायचे आहे त्यांच्यासाठी, एक लाइन-बाय-लाइन तुलना तयार केली गेली आहे, जी रस्टमध्ये सी कोड बनला आहे याची अंतर्दृष्टी प्रदान करते.

रस्टचा मुख्य कोडबेस rustc_codegen_gcc स्वीकारतो, जीसीसीसाठी एक रस्टसी बॅकएंड जो libgccjit लायब्ररी वापरून AOT संकलन लागू करतो. बॅकएंडच्या योग्य विकासासह, ते तुम्हाला GCC वापरून कर्नलमध्ये समाविष्ट असलेला रस्ट कोड गोळा करण्यास अनुमती देईल.
एआरएम, गुगल आणि मायक्रोसॉफ्ट व्यतिरिक्त, रेड हॅटने लिनक्स कर्नलमध्ये रस्ट वापरण्यात स्वारस्य व्यक्त केले आहे.

शेवटी, तुम्हाला याबद्दल अधिक जाणून घेण्यात स्वारस्य असल्यास, तुम्ही तपशीलांचा सल्ला घेऊ शकता पुढील लिंकवर


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.