لينڪس ڪنيل لاء پيچ جو ٻيو ايڊيشن زنگ ٻوليء جي حمايت سان

Miguel Ojeda، ليکڪ جو Rust-for-Linux پروجيڪٽ، لينڪس ڪنيل ڊولپرز پاران غور ڪرڻ لاءِ Rust ٻولي ۾ ڊيوائس ڊرائيورز کي ترقي ڪرڻ لاءِ اجزاء جو هڪ اپڊيٽ ورزن تجويز ڪيو. زنگ جي مدد کي تجرباتي سمجهيو ويندو آهي، پر اڳ ۾ ئي لينڪس-ايندڙ برانچ ۾ شامل ڪرڻ تي اتفاق ڪيو ويو آهي. نئون نسخو پيچ جي پهرين ورزن جي بحث دوران ڪيل تبصرن کي ختم ڪري ٿو. Linus Torvalds اڳ ۾ ئي بحث ۾ شامل ٿي چڪو آهي ۽ ڪجهه بٽ آپريشن جي پروسيسنگ لاءِ منطق کي تبديل ڪرڻ جي تجويز ڏني آهي.

ياد رهي ته تجويز ڪيل تبديليون ان کي ممڪن بڻائين ٿيون Rust کي ٻي ٻولي طور استعمال ڪرڻ لاءِ ڊرائيور ۽ ڪنيل ماڊلز کي ترقي ڪرڻ لاءِ. مورچا سپورٽ هڪ اختيار جي طور تي پيش ڪيو ويو آهي جيڪو ڊفالٽ طور تي فعال نه ڪيو ويو آهي ۽ اهو نتيجو نه آهي ته زنگ کي شامل ڪيو پيو وڃي ڪنيل لاء گهربل تعمير انحصار جي طور تي. ڊرائيور ڊولپمينٽ لاءِ رسٽ استعمال ڪرڻ توهان کي اجازت ڏيندو ته گهٽ ۾ گهٽ ڪوشش سان محفوظ ۽ بهتر ڊرائيور ٺاهي، مسئلن کان آزاد، جهڙوڪ ميموري جي رسائي آزاد ٿيڻ کان پوءِ، نول پوائنٽر ڊيريفرنس، ۽ بفر اووررن.

ميموري-محفوظ هينڊلنگ ريفرنس چيڪنگ، اعتراض جي ملڪيت جي ٽريڪ رکڻ ۽ اعتراض جي زندگي (اسڪوپ) جي ذريعي گڏ ڪرڻ واري وقت تي زنگ ۾ مهيا ڪئي وئي آهي، انهي سان گڏ ڪوڊ جي عمل جي دوران ميموري رسائي جي صحيحيت جي تشخيص ذريعي. زنگ انٽيجر اوور فلوز جي خلاف پڻ تحفظ فراهم ڪري ٿو، استعمال ڪرڻ کان اڳ متغير قدرن جي لازمي شروعات جي ضرورت آهي، معياري لائبريري ۾ غلطين کي بهتر نموني سان سنڀاليندو آهي، ڊفالٽ طور ناقابل قابل حوالن ۽ متغيرن جي تصور کي لاڳو ڪري ٿو، منطقي غلطين کي گھٽائڻ لاءِ مضبوط جامد ٽائپنگ پيش ڪري ٿو.

پيچ جي نئين ورزن ۾ سڀ کان وڌيڪ قابل ذڪر تبديليون:

  • ميموري مختص ڪرڻ جو ڪوڊ ممڪن طور تي "خوفناڪ" حالت پيدا ڪرڻ کان آزاد ڪيو ويو آهي جڏهن غلطيون جهڙوڪ ياداشت کان ٻاهر ٿينديون آهن. Rust alloc لائبريري جو هڪ قسم شامل ڪيو ويو آهي، جيڪو ناڪامين کي سنڀالڻ لاءِ ڪوڊ کي ٻيهر ڪم ڪري ٿو، پر حتمي مقصد اهو آهي ته ڪنيل لاءِ گهربل سمورين خصوصيتن کي alloc جي مکيه ايڊيشن ۾ منتقل ڪيو وڃي (تبديليون اڳ ۾ ئي تيار ڪيون ويون آهن ۽ معياري ڏانهن منتقل ڪيون ويون آهن. مورچا لائبريري).
  • رات جي تعمير جي بدران، توھان ھاڻي استعمال ڪري سگھوٿا بيٽا رليزز ۽ اسٽيبل رليز rustc compiler کي گڏ ڪرڻ لاءِ ھڪڙي ڪرنل کي گڏ ڪرڻ لاءِ Rust سپورٽ سان. في الحال، rustc 1.54-beta1 ريفرنس ڪمپلر طور استعمال ڪيو ويندو آھي، پر مھيني جي آخر ۾ 1.54 رليز ٿيڻ کان پوءِ، ان کي ريفرنس ڪمپلر طور سپورٽ ڪيو ويندو.
  • زنگ لاءِ معياري “#[test]” خاصيت استعمال ڪندي ٽيسٽ لکڻ لاءِ سپورٽ شامل ڪئي وئي ۽ ٽيسٽ کي دستاويز ڪرڻ لاءِ ڊڪٽيسٽ استعمال ڪرڻ جي صلاحيت.
  • شامل ڪيل سپورٽ ARM32 ۽ RISCV آرڪيٽيڪچرز لاءِ اڳ ۾ سپورٽ ٿيل x86_64 ۽ ARM64 کان علاوه.
  • GCC Rust (GCC frontend for Rust) ۽ rustc_codegen_gcc (Rustc backend for GCC) جا بهتر عمل، جيڪي ھاڻي سڀ بنيادي ٽيسٽ پاس ڪن ٿا.
  • تجريد جي هڪ نئين سطح تجويز ڪئي وئي آهي استعمال لاءِ زنگ پروگرامن جي ڪنيل ميڪانيزم جي C ۾ لکيل، جهڙوڪ ڳاڙهي-ڪارو وڻ، حوالن جي ڳڻپ ڪيل شيون، فائل بيان ڪندڙ تخليق، ڪم، فائلون، ۽ I/O ویکٹر.
  • ڊرائيور ڊولپمينٽ اجزاء فائل_آپريشن ماڊل، ماڊل! ميڪرو، ميڪرو رجسٽريشن، ۽ بنيادي ڊرائيورز (تحقيق ۽ ختم ڪرڻ) لاءِ سپورٽ کي بهتر بڻايو آهي.
  • Binder هاڻي پاسنگ فائل ڊسڪٽر ۽ LSM ٿلهو کي سپورٽ ڪري ٿو.
  • هڪ زنگ ڊرائيور جو وڌيڪ ڪارڪردگي مثال پيش ڪيو ويو آهي - bcm2835-rng Raspberry Pi boards جي هارڊويئر بي ترتيب نمبر جنريٽر لاءِ.

اضافي طور تي، ڪني ۾ زنگ جي استعمال سان لاڳاپيل ڪجهه ڪمپنين جي منصوبن جو ذڪر ڪيو ويو آهي:

  • Microsoft لينڪس ڪنيل ۾ Rust سپورٽ کي ضم ڪرڻ جي ڪم ۾ حصو وٺڻ ۾ دلچسپي جو اظهار ڪيو آهي ۽ ايندڙ مهينن ۾ Rust تي Hyper-V لاءِ ڊرائيور لاڳو ڪرڻ لاءِ تيار آهي.
  • ARM ARM-based سسٽم لاءِ رسٽ سپورٽ کي بهتر ڪرڻ لاءِ ڪم ڪري رهيو آهي. مورچا پروجيڪٽ اڳ ۾ ئي تبديلين جي تجويز ڪئي آهي جيڪا 64-bit ARM سسٽم کي ٽائر 1 پليٽ فارم ٺاهيندي.
  • گوگل سڌي طرح Rust for Linux پروجيڪٽ لاءِ مدد فراهم ڪري ٿو، Rust ۾ Binder interprocess ڪميونيڪيشن ميکانيزم جو نئون نفاذ ترقي ڪري رهيو آهي، ۽ Rust ۾ مختلف ڊرائيورن کي ٻيهر ڪم ڪرڻ جي امڪان تي غور ڪري رهيو آهي. ISRG (انٽرنيٽ سيڪيورٽي ريسرچ گروپ) جي ذريعي، گوگل لينڪس ڪنييل ۾ زنگ جي مدد کي ضم ڪرڻ لاء ڪم لاء فنڊ فراهم ڪيو.
  • IBM پاور پي سي سسٽم لاءِ Rust لاءِ ڪنيل سپورٽ لاڳو ڪيو آهي.
  • LSE (سسٽم ريسرچ ليبارٽري) ليبارٽري Rast ۾ هڪ SPI ڊرائيور تيار ڪيو آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو