لینکس کرنل کے لیے پیچ کا پانچواں ایڈیشن جس میں زنگ زبان کی حمایت ہے۔

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

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

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

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

  • انٹیل کے تعاون یافتہ 0DAY/LKP بوٹ پر مبنی مسلسل انضمام کے نظام میں Rust سپورٹ کے لیے اجزاء کی جانچ شامل کر دی گئی ہے اور ٹیسٹنگ رپورٹس کی اشاعت شروع ہو گئی ہے۔ ہم کرنل سی آئی خودکار ٹیسٹنگ سسٹم میں رسٹ سپورٹ کو ضم کرنے کی تیاری کر رہے ہیں۔ GitHub CI پر مبنی جانچ کو کنٹینرز کے استعمال میں منتقل کر دیا گیا ہے۔
  • رسٹ کرنل ماڈیولز کو کریٹ کے اوصاف "#![no_std]" اور "#![خصوصیت(…)]" کی وضاحت کرنے کی ضرورت سے آزاد کیا گیا ہے۔
  • واحد اسمبلی اہداف (.o، .s، .ll اور .i) کے لیے شامل کردہ تعاون۔
  • کوڈ کی رہنما خطوط تبصروں ("//") اور دستاویزی کوڈ ("///") کو الگ کرنے کے قواعد کی وضاحت کرتی ہیں۔
  • is_rust_module.sh اسکرپٹ پر دوبارہ کام کیا گیا ہے۔
  • "CONFIG_CONSTRUCTORS" کے نفاذ کی بنیاد پر جامد (عالمی مشترکہ متغیر) مطابقت پذیری کے لیے معاونت شامل کی گئی۔
  • لاک مینجمنٹ کو آسان بنایا گیا ہے: گارڈ اور گارڈمٹ کو ملایا گیا ہے اور ایک پیرامیٹرائزڈ قسم ہے۔
  • آلات کو رجسٹر کرتے وقت اضافی پیرامیٹرز کی وضاحت کرنا ممکن ہے۔
  • "RwSemaphore" تجرید کو شامل کیا گیا، جو rw_semaphore C ڈھانچے پر ریپر کے طور پر کام کرتا ہے۔
  • mmap استعمال کرنے کے لیے، ایک نیا mm ماڈیول اور ایک VMA تجرید شامل کیا گیا ہے (vm_area_struct ڈھانچے پر ایک ریپر)۔
  • GPIO PL061 ڈرائیور کو "dev_*!" میکرو استعمال کرنے پر تبدیل کر دیا گیا ہے۔
  • کوڈ کی عمومی صفائی کی گئی۔

ماخذ: opennet.ru

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