لينڪس ڪنيل لاء محفوظ ڊرائيور لکڻ لاء فريم ورڪ Rust ۾

جوش ٽرپلٽ، جيڪو انٽيل تي ڪم ڪري ٿو ۽ ڪميٽي تي آهي Crates.io جي ترقي جي نگراني ڪندي، اوپن سورس ٽيڪنالاجي اجلاس ۾ ڳالهائيندي متعارف ڪرايو هڪ ڪم ڪندڙ گروپ جو مقصد سسٽم پروگرامنگ جي ميدان ۾ زنگ واري ٻولي کي سي ٻولي سان برابري ۾ آڻڻ آهي.

ھڪڙي ڪم ڪندڙ گروپ ۾ جيڪو ٺاھڻ جي عمل ۾ آھي، زنگ ڊولپرز، انٽيل جي انجنيئرن سان گڏ، ڪارڪردگي جي وضاحت ڪندي وضاحتون تيار ڪنديون جيڪي سسٽم پروگرامنگ لاء Rust ۾ لاڳو ٿيڻ جي ضرورت آھي. سسٽم پروگرامنگ اڪثر ڪري گھٽ سطح جي ورهاڱي جي ضرورت هوندي آهي، جهڙوڪ مراعات يافته پروسيسر جي هدايتن تي عمل ڪرڻ ۽ پروسيسر جي حالت بابت تفصيلي ڄاڻ حاصل ڪرڻ. ساڳين خصوصيتن مان اڳ ۾ ئي زنگ لاءِ ترقي ڪئي پئي وڃي، اڻ ڄاتل اڏاوتن لاءِ سپورٽ، يونين، اسيمبليءَ جي ٻولي داخل ڪرڻ (“asm!” macro) ۽ BFLOAT16 فلوٽنگ پوائنٽ نمبر فارميٽ نوٽ ڪيو ويو آهي.

جوش جو خيال آهي ته سسٽم پروگرامنگ جو مستقبل زنگ سان تعلق رکي ٿو، ۽ جديد حقيقتن ۾ سي ٻولي اها جاءِ دعويٰ ڪري رهي آهي ته گذريل سالن ۾ اسيمبليءَ تي قبضو هو. زنگ
نه رڳو ڊولپرز کي سي ٻولي ۾ پيدا ٿيندڙ مسئلن کان نجات ڏياري ٿو جيڪي ميموري سان گهٽ سطحي ڪم جي ڪري پيدا ٿين ٿا، پر ان کي جديد پروگرامنگ پيراڊمز جي ترقي ۾ استعمال ڪرڻ جو موقعو پڻ فراهم ڪري ٿو.

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

Greg Kroah-Hartman، جيڪو لينڪس ڪرنل جي مستحڪم شاخ کي برقرار رکڻ جو ذميوار آهي، پنهنجي تياري جو اظهار ڪيو ته ڊرائيور کي ترقي ڪرڻ لاء هڪ فريم ورڪ شامل ڪرڻ لاء Rust ٻولي ڪرنل ۾ جيڪڏهن اهو حقيقي فائدن آهي C تي، مثال طور، اهو محفوظ ڪندو. Kernel API تي پابند. ان کان علاوه، گريگ هن فريم ورڪ کي صرف هڪ اختيار جي طور تي سمجهي ٿو، ڊفالٽ طور تي فعال ناهي، جيئن ته زنگ کي شامل نه ڪيو وڃي جيئن ته ڪنيل تي تعمير انحصار.

اهو ظاهر ٿيو ته ڪيترن ئي ٽيمن اڳ ۾ ئي هن هدايت ۾ ڪم ڪري رهيا آهن. مثال طور، ڪمپني جي ڊولپرز "فش ان بيرل" تيار ڪيل لينڪس ڪرنل لاءِ لوڊ ڪرڻ لائق ماڊيولز لکڻ لاءِ ٽول ڪٽ Rust ٻوليءَ ۾، سيڪيورٽي کي وڌائڻ لاءِ انٽرفيس ۽ ڪرنل ڍانچي مٿان خلاصي پرت جو هڪ سيٽ استعمال ڪندي. پرت خودڪار طور تي ٺاهيل آھن موجوده ڪنييل ھيڊر فائلن جي بنياد تي استعمال ڪندي استعمال ڪندي bingen. ڪلنگ کي پرت ٺاهڻ لاء استعمال ڪيو ويندو آهي. interlayers کان علاوه، گڏ ڪيل ماڊل استعمال ڪندا آهن staticlib پيڪيج.

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

سڀ گهربل ڪارڪردگي اڃا تائين لاڳو نه ڪئي وئي آهي، پر فريم ورڪ اڳ ۾ ئي ڪم لاء ڪافي مناسب آهي ۽ Raspberry Pi 9512 بورڊ ۾ فراهم ڪيل LAN3 USB Ethernet ڪنٽرولر لاء ڪم ڪندڙ ڊرائيور لکڻ لاء استعمال ڪيو ويو. موجوده smsc95xx ڊرائيور، طرفان لکيل آهي سي ٻولي. اهو نوٽ ڪيو ويو آهي ته ماڊل سائيز ۽ اوور هيڊ رن ٽائم اجزاء کان جڏهن زنگ ۾ ڊرائيور ٺاهي رهيا آهن غير اهم آهن، جيڪا فريم ورڪ کي محدود وسيلن سان ڊوائيسز لاء استعمال ڪرڻ جي اجازت ڏئي ٿي.

جو ذريعو: opennet.ru

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