Rust ، شيء يبدو أن مطوري Linux يتفقون معه

لغة البرمجة يهدف Rust دائمًا إلى استبدال C في تطوير Linux kernel وهو أنه مع نضوج Rust ، أعرب العديد من المطورين عن اهتمام متزايد باستخدامه في Linux kernel.

في المؤتمر الافتراضي لـ Linux Plumbers 2020 ، تدفق المؤتمرات المصغرة بواسطة LLVM نظمت جلسة حول الأسئلة المفتوحة والحواجز من أجل قبول المنبع لـ Rust على نواة Linux.

الاهتمام بهذا الموضوع واضح ، حيث كانت هذه الجلسة هي الأكثر ازدحامًا في حدث 2020.

هل يجب علينا الآن إعادة كتابة Linux kernel بالكامل باستخدام لغة Rust؟ لا يعود تاريخ هذه المناقشة إلى اليوم وقد تم إبرازها منذ ظهور أول نسخة مستقرة من Rust في عام 2015.

في ضوء الاحتمالات التي يوفرها الصدأ ، يقترح البعض القيام بذلك. هذا العام ، في مؤتمر Linux Plumbers في أغسطس ، كان لدى المتحدثين الوقت مرة أخرى لمناقشتها.

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

تم بناء هذه الجلسة على العمل السابق للعديد من المطورين ، بما في ذلك حديث قدمه العام الماضي أليكس جاينور وجيفري توماس في قمة Linux Security Summit.

في المؤتمر ، قدموا عملهم على نماذج أولية لنواة Rust ودعوا إلى تبني Rust في النواة.

واستشهدوا بالعمل الذي يُظهر أن ما يقرب من ثلثي ثغرات kernel التي تم تعيينها في CVEs في Android و Ubuntu مرتبطة بقضايا أمان الذاكرة.

انتهى الأمر بشرح ذلك يمكن أن يتجنب الصدأ تمامًا هذا النوع من الأخطاء بفضل واجهات برمجة التطبيقات الأكثر أمانًا تم تمكينه من خلال نوع النظام الخاص بك وأداة التحقق من القرض.

تمكنت هذه الدراسة من إقناع العديد من المشرفين بالفعل Linus Torvalds ، الذي أيد إدخال Rust في النواة. شارك Thomas و Gaynor ، Josh Triplett ، الرئيس المشارك لفريق Rust Language ومطور Linux kernel منذ فترة طويلة ، بالإضافة إلى مطورين مهتمين آخرين في المناقشة حول هذا الموضوع.

لقد تطرقوا بإيجاز إلى عمله حتى الآن وبعض أفكاره وأسئلته الأولى قبل فتح معظم الوقت للمناقشة.

هذه هي استخدام واجهات برمجة التطبيقات الموجودة في النواة ، ودعم البنية ، وسؤال حول توافق ABI بين Rust و C.

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

ومع ذلك ، يشعر الجميع أن الشيطان يكمن في التفاصيل ، وقد كشف كل من العمل المنجز حتى الآن والمحادثة خلال الجلسة عن بعض التحديات المفتوحة.

على سبيل المثال ، يستخدم Linux بكثافة وحدات الماكرو والمعالجات المضمنة ، والتي لا يتم دعمها بسهولة بواسطة أداة bindgen وواجهة وظائف Rust الخارجية.

وفقا لهم، حاليًا التطبيق الناضج الوحيد لـ Rust هو المترجم rustc ، الذي يصدر التعليمات البرمجية من خلال LLVM.

يدعم Linux kernel مجموعة متنوعة من البنى ، والعديد منها لا يتوفر به LLVM backend.

من جانبه ، اقترح Triplett أن إضافة Rust إلى النواة من شأنه أن يساعد في زيادة الدعم المعماري لـ Rust ، مستشهداً بتجربته مع مشروع دبيان. وأشار إلى أن إدخال برنامج Rust في دبيان قد ساعد في تحفيز المتحمسين والمستخدمين للهندسة المتخصصة لتحسين دعم Rust ، ويأمل في إضافة دعم kernel ليكون له نفس التأثير.

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

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


اترك تعليقك

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

*

*

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

  1.   الطيار الآلي قال

    يبدو أنه بداية حقبة جديدة ، يظهر الطراز C الثابت.

    مرحبا روست ، وداعا لينوس تورفالدس!