WD Rust میں NVMe ڈرائیور تیار کر رہا ہے۔ فری بی ایس ڈی پر زنگ کے ساتھ تجربہ کرنا

ان دنوں جاری لینکس پلمبرز 2022 کانفرنس میں، ویسٹرن ڈیجیٹل کے ایک انجینئر نے NVM-Express (NVMe) SSDs کے لیے ایک تجرباتی ڈرائیور کی ترقی کے بارے میں ایک پریزنٹیشن پیش کی جو Rust میں لکھی گئی اور Linux کرنل کی سطح پر چل رہی ہے۔ اس حقیقت کے باوجود کہ پروجیکٹ ابھی ترقی کے ابتدائی مرحلے میں ہے، کی گئی جانچ نے ظاہر کیا کہ Rust NVMe ڈرائیور کی کارکردگی دانا میں C میں لکھے گئے NVMe ڈرائیور کے مساوی ہے۔

WD Rust میں NVMe ڈرائیور تیار کر رہا ہے۔ فری بی ایس ڈی پر زنگ کے ساتھ تجربہ کرنا
WD Rust میں NVMe ڈرائیور تیار کر رہا ہے۔ فری بی ایس ڈی پر زنگ کے ساتھ تجربہ کرنا

رپورٹ میں کہا گیا ہے کہ C میں موجودہ NVMe ڈرائیور ڈویلپرز کے لیے مکمل طور پر تسلی بخش ہے، لیکن NVMe سب سسٹم Rust میں ڈرائیورز تیار کرنے کی فزیبلٹی کو تلاش کرنے کے لیے ایک اچھا پلیٹ فارم ہے، کیونکہ یہ کافی آسان، وسیع پیمانے پر استعمال ہوتا ہے، اعلیٰ کارکردگی کی ضروریات رکھتا ہے، اور مختلف انٹرفیس (dev, pci, dma, blk-mq, gendisk, sysfs) کے موازنہ اور معاونت کے لیے ایک ثابت شدہ حوالہ عمل درآمد۔

یہ نوٹ کیا جاتا ہے کہ Rust PCI NVMe ڈرائیور پہلے ہی آپریشن کے لیے ضروری فعالیت فراہم کرتا ہے، لیکن ابھی تک وسیع پیمانے پر استعمال کے لیے تیار نہیں ہے، کیونکہ اس میں الگ سے بہتری کی ضرورت ہے۔ مستقبل کے منصوبوں میں موجودہ غیر محفوظ بلاکس سے چھٹکارا حاصل کرنا، ڈیوائس کو ہٹانے اور ڈرائیور کو اتارنے میں مدد، sysfs انٹرفیس کو سپورٹ کرنا، سست ابتداء کو لاگو کرنا، blk-mq کے لیے ڈرائیور بنانا، اور queue_rq کے لیے ایک غیر مطابقت پذیر پروگرامنگ ماڈل کے ساتھ تجربہ کرنا شامل ہیں۔

مزید برآں، ہم NCC گروپ کے ذریعے فری بی ایس ڈی کرنل کے لیے زنگ کی زبان میں ڈرائیور تیار کرنے کے لیے کیے گئے تجربات کو نوٹ کر سکتے ہیں۔ مثال کے طور پر، ایک سادہ ایکو ڈرائیور جو /dev/rustmodule فائل میں لکھا ہوا ڈیٹا واپس کرتا ہے، اس کا تفصیل سے تجزیہ کیا جاتا ہے۔ تجربے کے اگلے مرحلے میں، NCC گروپ نیٹ ورک اور فائل آپریشنز کی سیکیورٹی کو بہتر بنانے کے لیے Rust میں بنیادی بنیادی اجزاء کو دوبارہ کام کرنے پر غور کر رہا ہے۔

یہ کہا جا رہا ہے، اگرچہ یہ دکھایا گیا ہے کہ زنگ میں آسان ماڈیول بنانا ممکن ہے، فری بی ایس ڈی کرنل میں زنگ کے سخت انضمام کے لیے اضافی کام کی ضرورت ہوگی۔ مثال کے طور پر، اس میں سب سسٹمز اور کرنل ڈھانچے پر تجریدی تہوں کا ایک سیٹ بنانے کی ضرورت کا ذکر کیا گیا ہے، جو کہ Rust for Linux پروجیکٹ کے ذریعے تیار کردہ ایڈ آنز کی طرح ہے۔ مستقبل میں، Illumos کور کے ساتھ اسی طرح کے تجربات کرنے اور زنگ میں عام تجریدوں کو نمایاں کرنے کا منصوبہ بنایا گیا ہے جو لینکس، BSD اور Illumos کے لیے زنگ سے لکھے گئے ڈرائیوروں میں استعمال کیے جا سکتے ہیں۔

مائیکروسافٹ اور گوگل کے مطابق، ان کے سافٹ ویئر پروڈکٹس میں تقریباً 70 فیصد کمزوریاں میموری کے غیر محفوظ انتظام کی وجہ سے ہوتی ہیں۔ یہ فرض کیا جاتا ہے کہ زنگ زبان کا استعمال غیر محفوظ میموری ہینڈلنگ کی وجہ سے پیدا ہونے والی کمزوریوں کے خطرے کو کم کرے گا، اور غلطیوں کی موجودگی کو ختم کرے گا جیسے میموری کے علاقے کو آزاد کرنے اور بفر اووررن کے بعد اس تک رسائی حاصل کرنا۔

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

ماخذ: opennet.ru

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