يدخل Rust أخيرًا في تطوير Linux kernel ، بعد سنوات من التحليل والحوار حول الفوائد حيث ظهر دعم Rust الأول الأسبوع الماضي في فرع Linux-Next. في حين أن مؤلفي هذا العمل لا يعتبرون هذا إضافة مهمة ، إلا أنه يضع الأساس لبناء وظائف Rust kernel للمستقبل. هذا الدعم مشروط بوجود مترجم الصدأ (rustc) في النظام. لذلك ، فإن البنى المستهدفة حاليًا هي ARM64 و x86_64.
ناقش مطورو Linux لفترة من الوقت احتمال السماح باستخدام اللغة التي طورتها Mozilla Research لكتابة برامج تشغيل جديدة للأجهزة للنواة. في العام الماضي ، يبدو أن مطوري Linux kernel قد وافقوا على هذا الموضوع. للتسجيل ، Rust شائع لأنه يوفر العديد من المزايا ، خاصة فيما يتعلق بالذاكرة. استشهد مؤيدو Rust بالعمل الذي يظهر أن حوالي ثلثي ثغرات kernel التي تم تعيينها CVEs على Android و Ubuntu كلها مرتبطة بقضايا أمان الذاكرة.
على سبيل المثال ، وفقًا للأرقام المأخوذة من قاموس الثغرات الأمنية الشائعة والتعرض (CVE) ، فإن 15.9٪ من الثغرات الأمنية البالغ عددها 2288 التي أثرت على نواة Linux خلال 20 عامًا مرتبطة بتدفق المخزن المؤقت. هذا هو التحدي للمستقبل عندما يتعلق الأمر ببرمجة النظام. بالإضافة إلى ذلك ، قام عمالقة الصناعة ، من Apple إلى Amazon و Facebook و Microsoft ، بتوظيف مطوري Rust في السنوات الأخيرة. في الواقع ، وفقًا للشركة التي يقع مقرها في ريدموند ، فإن Rust هي أفضل فرصة لصناعة تكنولوجيا المعلومات في بناء تطبيقات نظام آمنة.
وفقًا لمؤيدي Rust ، قد يساعد ذلك في تجنب هذه الفئة من الأخطاء تمامًا في المستقبل مع واجهات برمجة تطبيقات أكثر أمانًا يتم تمكينها بواسطة نوع نظامها ومدقق الاقتراض. كما تم الاستشهاد بمزايا أخرى من قبلهم لتبرير الاقتراح بمواصلة تطوير النواة مع Rust. كخطوة أولى نحو هذا الحلم ، تم الإعلان عن دعم Rust الأولي يوم الخميس على rust-for-linux في Linux-Next. حذر ميغيل أوجيدا ، الذي يشارك في هذا الجهد ، “هذا لا يعني أننا سنفعل ذلك في النسخة الرئيسية ، بالطبع ، لكنها خطوة جيدة لجعل الأمور أسهل ما يمكن”.
بالإضافة إلى ذلك ، على الرغم من عدم وجود برنامج تشغيل Rust kernel جاهزًا حتى الآن ، إلا أن الدمج الأولي لنظام Linux-Next يشتمل على نموذج وحدة kernel مكتوب بلغة Rust. بالمناسبة ، بينما Rust موجود الآن في Linux-Next ، لم يتضح بعد ما إذا كان / متى سيتم تضمينه في الفرع الرئيسي. عادةً ما يتم ضبط العمل في Linux-Next حتى الدورة التالية ، ولكن في بعض الأحيان يمكن أن يظل في Linux-Next لفترة أطول إذا كان العمل قيد التقدم. لا يزال يتعين على الكود المرور عبر جميع إجراءات طلب استخراج نافذة الدمج.
في كلتا الحالتين ، يتقدم الجهد وقد يكون من المثير للاهتمام معرفة ما إذا كانت بنية Rust الأساسية هذه لنواة Linux قادرة على تحويلها إلى الإصدار 5.13 أو إصدار نواة آخر هذا العام. أخيرًا ، كما أشرنا أعلاه ، يأتي جزء من جاذبية Rust من ميزات أمان ذاكرة Rust ، خاصةً بالمقارنة مع C ، حيث يتم حاليًا تشفير نواة Linux. ومع ذلك ، فإن جزءًا من المشكلة هو أن Rust يتم تجميعه على أساس LLVM ، على عكس GCC ، وبالتالي يدعم عددًا أقل من البنى.
هذه مشكلة شهدها المجتمع مؤخرًا عندما استبدلت مكتبة Python Encryption بعضًا من رموز C القديمة بـ Rust. في الواقع ، أدى هذا إلى حالة لن يتم فيها دعم بعض البنى. في الوقت الحالي ، يحد اقتراح تضمين Rust في نواة Linux من هذه المشكلة بالقول إنه سيتم استخدام Rust ، على الأقل في البداية ، لكتابة برامج تشغيل “لن يتم استخدامها أبدًا في المزيد من البنى الغامضة على أي حال.”