رسٹ لینگویج کے لیے سپورٹ کے ساتھ لینکس کرنل کے لیے پیچ کا چوتھا ایڈیشن

Rust-for-Linux پروجیکٹ کے مصنف، Miguel Ojeda نے Linux کرنل ڈویلپرز کی طرف سے غور کے لیے Rust زبان میں ڈیوائس ڈرائیورز تیار کرنے کے لیے اجزاء کا چوتھا ورژن تجویز کیا۔ زنگ کی حمایت کو تجرباتی سمجھا جاتا ہے، لیکن لینکس-اگلی برانچ میں شامل کرنے کے لیے پہلے ہی اس پر اتفاق ہو چکا ہے اور یہ کافی پختہ ہے کہ کرنل سب سسٹمز کے ساتھ ساتھ ڈرائیوروں اور ماڈیولز کو لکھنے کے لیے تجریدی پرتیں بنانے پر کام شروع کر سکے۔ ترقی کو Google اور ISRG (انٹرنیٹ سیکیورٹی ریسرچ گروپ) کی طرف سے مالی اعانت فراہم کی جاتی ہے، جو Let's Encrypt پروجیکٹ کا بانی ہے اور HTTPS اور انٹرنیٹ سیکیورٹی کو بہتر بنانے کے لیے ٹیکنالوجیز کی ترقی کو فروغ دیتا ہے۔

یاد رکھیں کہ مجوزہ تبدیلیاں ڈرائیوروں اور کرنل ماڈیولز کو تیار کرنے کے لیے Rust کو دوسری زبان کے طور پر استعمال کرنا ممکن بناتی ہیں۔ رسٹ سپورٹ کو ایک ایسے آپشن کے طور پر پیش کیا جاتا ہے جو بطور ڈیفالٹ فعال نہیں ہوتا ہے اور اس کے نتیجے میں زنگ کو دانا کے لیے مطلوبہ تعمیراتی انحصار کے طور پر شامل نہیں کیا جاتا ہے۔ ڈرائیور کی ترقی کے لیے رسٹ کا استعمال آپ کو کم سے کم کوشش کے ساتھ محفوظ اور بہتر ڈرائیور بنانے کی اجازت دے گا، فری کرنے کے بعد میموری تک رسائی، null pointer dereferences، اور buffer overruns جیسے مسائل سے پاک۔

رسٹ میں میموری سے محفوظ ہینڈلنگ کمپائل کے وقت حوالہ کی جانچ، آبجیکٹ کی ملکیت اور آبجیکٹ لائف ٹائم (اسکوپ) پر نظر رکھنے کے ساتھ ساتھ کوڈ پر عمل درآمد کے دوران میموری تک رسائی کی درستگی کی جانچ کے ذریعے فراہم کی جاتی ہے۔ زنگ انٹیجر اوور فلو کے خلاف بھی تحفظ فراہم کرتا ہے، استعمال سے پہلے متغیر اقدار کی لازمی ابتداء کی ضرورت ہوتی ہے، معیاری لائبریری میں غلطیوں کو بہتر طریقے سے ہینڈل کرتا ہے، غیر متغیر حوالہ جات اور متغیرات کے تصور کو بطور ڈیفالٹ لاگو کرتا ہے، منطقی غلطیوں کو کم کرنے کے لیے مضبوط جامد ٹائپنگ پیش کرتا ہے۔

پیچ کا نیا ورژن پیچ کے پہلے، دوسرے اور تیسرے ایڈیشن کی بحث کے دوران کیے گئے تبصروں کو ختم کرتا ہے۔ نئے ورژن میں:

  • رسٹ 1.58.0 کی مستحکم ریلیز کو بطور حوالہ مرتب کرنے والے کے استعمال میں منتقلی کی گئی ہے۔ پروجیکٹ کے لیے ضروری تبدیلیوں میں، جو ابھی تک مین Rust ٹول کٹ میں شامل نہیں ہیں، "-Zsymbol-mangling-version=v0" جھنڈا (Rust 1.59.0 میں متوقع ہے) اور "maybe_uninit_extra" موڈ (جس کی توقع زنگ 1.60.0 میں ہے۔ .XNUMX) نوٹ کیے گئے ہیں ..
  • مناسب رسٹ ٹولز کی دستیابی کے لیے خودکار چیکس شامل کیے گئے اور سسٹم میں رسٹ سپورٹ کی جانچ کرنے کی صلاحیت کو بڑھا دیا۔
  • رسٹ کوڈ سے ڈیوائس شناخت کنندہ ٹیبلز ("IdArray" اور "IdTable") تک رسائی کے لیے نئے تجریدات تجویز کیے گئے ہیں۔
  • ٹائمر سے متعلقہ افعال تک رسائی کے لیے تہوں کو شامل کیا گیا (گھڑی کا فریم ورک)۔
  • پلیٹ فارم ڈرائیوروں کی تعریف اب خصوصیت کے نفاذ کے ذریعے کی گئی ہے۔
  • پلیٹ فارم ڈرائیوروں کی رجسٹریشن کو آسان بنانے کے لیے ایک نیا میکرو شامل کیا گیا ہے، اور ایک نیا عام ڈرائیور ٹیمپلیٹ تجویز کیا گیا ہے۔
  • "dev_*" ڈھانچے کے لیے میکرو شامل کیے گئے۔
  • IoMem قسم کے لیے "{پڑھیں، لکھیں}*_آرام دہ" طریقے شامل کیے گئے۔ .
  • فائل آپریشن کو آسان بنانے کے لیے فائل اوپنر پراپرٹی کو ہٹا دیا۔
  • "ThisModule" پیرامیٹر ڈرائیور کو رجسٹر کرتے وقت منظور کیے گئے دلائل میں شامل کر دیا گیا ہے۔
  • زنگ زبان میں کرنل ماڈیول بنانے کے لیے ایک معیاری ٹیمپلیٹ تجویز کیا گیا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں