تعمل Western Digital بالفعل على برنامج تشغيل NVMe مكتوب بلغة Rust

رست لينوكس

حظي تكامل Rust في Linux بمستوى عالٍ من القبول من قبل المجتمع والمطورين

خلال مؤتمر "Linux Plumbers 2022" الذي كان مستمرًا هذه الأيام ، مهندس ويسترن ديجيتال قدم عرضًا تقديميًا عن تطوير وحدة تحكم تجريبي لـ SSD NVM-Express (NVMe) مكتوب في Rust ويعمل على مستوى Linux kernel.

على الرغم من ذلك المشروع لا يزال في مرحلة مبكرة من التطوير، أظهرت الاختبارات التي تم إجراؤها أن أداء برنامج تشغيل Rust NVMe يتوافق مع محرك NVMe المكتوب بلغة C في النواة.

أنا ماثيو ويلكوكس ، أنا أحد مؤلفي مواصفات NVMe ، كنت من اقترح أن أصنع برنامج تشغيل NVMe لإثبات قيمة الصدأ. لقد كان ناجحًا بما يتجاوز توقعاتي الأكثر جموحًا. 

فيما يتعلق بالتقرير المقدم يُقال أن برنامج تشغيل NVMe C الحالي مرضٍ تمامًا للمطورين ، لكن النظام الفرعي NVMe هو منصة جيدة لاستكشاف جدوى تطوير برامج التشغيل في Rust ، لأنه بسيط للغاية ، ويستخدم على نطاق واسع ، وله متطلبات أداء عالية ، وله تطبيق مرجعي مثبت للمقارنة ، ويدعم واجهات مختلفة (dev ، pci ، dma ، blk-mq ، gendisk ، sysfs).

لوحظ أن يوفر برنامج تشغيل Rust PCI NVMe بالفعل الوظائف اللازمة للتشغيل ، ولكنه ليس جاهزًا بعد للاستخدام على نطاق واسع ، حيث يتطلب تحسينات منفصلة.

تتضمن خطط المستقبل التخلص من الكتل غير الآمنة الموجودة، دعم إزالة الجهاز وتنزيل برنامج التشغيل ، دعم واجهة sysfs، وتنفيذ التهيئة البطيئة ، وإنشاء وحدة تحكم لـ blk-mq ، وتجربة نموذج برمجة غير متزامن لـ queue_rq.

علاوة على ذلك ، يمكننا أن نشير أجريت التجارب بواسطة مجموعة NCC لتطوير وحدات التحكم في لغة Rust لـ نواة FreeBSD. كمثال ، وحدة تحكم صدى بسيطة تقوم بإرجاع البيانات المكتوبة إلى / dev / rustmodule. في المرحلة التالية من التجريب ، تدرس مجموعة NCC إعادة صياغة المكونات الأساسية في Rust لتحسين أمان عمليات الشبكة والملفات.

ومع ذلك ، على الرغم من أنه ثبت أنه من الممكن إنشاء وحدات بسيطة في Rust ، سيتطلب تكامل Rust في نواة FreeBSD مزيدًا من العمل.

على سبيل المثال ، ذكر الحاجة إلى إنشاء مجموعة من طبقات التجريد فوق أنظمة وهياكل النواة الفرعية ، على غرار المكونات الإضافية التي أعدها مشروع Rust لنظام Linux. في المستقبل ، نخطط لإجراء تجارب مماثلة مع نواة Illumos وإبراز الأفكار التجريدية الشائعة في Rust التي يمكن استخدامها في برامج التشغيل التي كتبها Rust لـ Linux و BSD و Illumos.

وفقًا لمايكروسوفت وجوجل ، فإن حوالي 70٪ من الثغرات الأمنية في منتجات برامجهم ناتجة عن إدارة الذاكرة غير الآمنة.

من المفترض أن يقلل استخدام لغة Rust من مخاطر نقاط الضعف ناتج عن معالجة غير آمنة للذاكرة وسيؤدي إلى القضاء على حدوث أخطاء مثل الوصول إلى منطقة من الذاكرة بعد تحريرها وتجاوز سعة المخزن المؤقت.

يتم توفير أمان الذاكرة في Rust في وقت الترجمة عن طريق التحقق من المراجع وتتبع ملكية الكائن وعمر الكائن (النطاق) ، وكذلك من خلال تقييم صحة الوصول إلى الذاكرة أثناء تنفيذ الكود.

Rust يوفر أيضًا حماية تجاوز عدد صحيح، يتطلب تهيئة المتغيرات قبل الاستخدام ، ويتعامل بشكل أفضل مع الأخطاء في المكتبة القياسية ، ويفرض مفهوم المتغيرات والمراجع الثابتة بشكل افتراضي ، ويوفر كتابة ثابتة قوية لتقليل الأخطاء المنطقية.

ومن الجدير بالذكر أنه قد يكون من الممكن أن يسير العمل في المستقبل جنبًا إلى جنب مع العمل الذي قدمه ميغيل أوجيدا على برامج التشغيل الخاصة به "Rust for Linux" ، والتي تم تقديمها على شكل سلسلة من التصحيحات.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.