تعمل WD على تطوير برنامج تشغيل NVMe في Rust. تجربة الصدأ على FreeBSD

في مؤتمر Linux Plumbers 2022 المنعقد هذه الأيام، قدم أحد المهندسين من Western Digital عرضًا تقديميًا حول تطوير برنامج تشغيل تجريبي لمحركات أقراص الحالة الصلبة NVM-Express (NVMe) المكتوب بلغة Rust ويعمل على مستوى Linux kernel. على الرغم من أن المشروع لا يزال في مرحلة مبكرة من التطوير، فقد أظهر الاختبار الذي تم إجراؤه أن أداء برنامج تشغيل Rust NVMe يتوافق مع برنامج تشغيل NVMe المكتوب بلغة C في النواة.

تعمل WD على تطوير برنامج تشغيل NVMe في Rust. تجربة الصدأ على FreeBSD
تعمل WD على تطوير برنامج تشغيل NVMe في Rust. تجربة الصدأ على FreeBSD

يقول التقرير إن برنامج تشغيل 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 for Linux. في المستقبل، من المخطط إجراء تجارب مماثلة مع نواة Illumos وتسليط الضوء على التجريدات الشائعة في Rust والتي يمكن استخدامها في برامج التشغيل المكتوبة بواسطة Rust لأنظمة التشغيل Linux وBSD وIllumos.

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

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

المصدر: opennet.ru

إضافة تعليق