يتضمن Rust لنظام التشغيل Linux العديد من التحسينات لدعمه

خلال الأشهر الماضية كان مطورو Linux يتجادلون امكانية السماح باستخدام لغة الصدأ لكتابة برامج تشغيل جديدة لجهاز kernel.

في العام الماضي ، قام مطورو Linux kernel يبدو أنهم توصلوا إلى اتفاق بشأن هذه المسألة ، استشهد مؤيدو Rust بالعمل الذي يظهر أن ما يقرب من ثلثي ثغرات kernel التي تم تعيينها في CVEs في Android و Ubuntu مرتبطة بقضايا أمان الذاكرة.

بعد هذا البيان ، قال Linus Torvalds ، مهندس البرمجيات ، والمبدع الرئيسي ، ومطور نواة Linux ، في مقابلة أن المناقشات حول هذا الموضوع ستكون أكثر أهمية بكثير من مشاركة مطولة على Google حول اللغة.

عندما سئل عن اقتراح استخدام Rust ، أشار إلى أن "الحل هنا بسيط: فقط استخدم C ++ بدلاً من Rust."

بعد ذلك في مارس ، تم إطلاق أول دعمe مما سمح بوضع برامج تشغيل Rust في شجرة Linux-Next لمزيد من الاختبار قبل إدراجها في النهاية في النواة الرئيسية.

خلفها مباشرة كان "طلب للتعليق" أعيد إصداره في قائمة بريد kernel البريدية حول منظور كود Rust لنواة لينكس.

ميغيل أوجيدابدأ مطور Linux kernel طلب التعليقات (RFC) على القائمة البريدية لـ Linux kernel.

حدد منشور القائمة البريدية معتقدات المطورين المشاركين في إضافة كود Rust إلى النواة ، ومزايا مثل تحسين أمان الذاكرة ، والمزيد.

"لاحظ البعض منكم في الأسابيع والأشهر الأخيرة أن هناك محاولة جادة لإحضار لغة ثانية إلى النواة. لقد وصلنا أخيرًا ، مع RFC الذي يضيف دعم Rust إلى Linux kernel ، "قال ميغيل أوجيجا. وأضاف: "نحن نعلم أن هناك تكاليف ومخاطر هائلة تنطوي على إدخال لغة جديدة إلى النواة".

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

قال ميغيل: "نود أن نشكر روست على العمل معنا بشأن هذه الخيارات حتى يمكن للنواة استخدامها".

عند تحديث المترجم الفريق كان قادرًا على إزالة بعض الميزات غير المستقرة من القائمة: const_fn_transmute ، و const_panic ، و const_unreachable_unchecked ، و core_panic ، و try_reserve.

بالإضافة إلى ذلك ، تم تسليط الضوء على أن تم إضافة بعض خيارات النمذجة المزيد لتخصيصه لتعطيل بعض الوظائف غير الضرورية: no_rc و no_sync.

المنبع ، من أجل دعم حالة استخدام kernel بشكل جيد ، أو بشكل أكثر دقة "مزيج" الخيارات التي تحتاجها kernel ، أضاف مركز Upstream أيضًا no_fp_fmt_parse.

من ناحية أخرى ، أتاح Rust سلسلة من التشخيصات الإضافية لمجمع Rust and Clippy. اختلاف واحد عن C هو أن تشخيص الصدأ أسهل قليلاً في تعطيل الكود ، وهو أكثر صرامة في الحالة العامة.

أيضا تم تنفيذ التجريدات وتحديثات السائق. أضاف الفريق أفكارًا مجردة لأقفال الدفق واسترجاع بيانات إدارة الطاقة وذاكرة io (readX / writeX) وشرائح irq ومديري البث عالي المستوى وشرائح gpio (بما في ذلك رقائق irq) والأجهزة الطرفية وأجهزة amba الطرفية وبرامج التشغيل.

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

كما تم تنفيذ برنامج تشغيل جديد لأجهزة gpio PL061 وشحنه كتصحيح RFC.

أخيرا تجدر الإشارة إلى أن لا يزال دعم الصدأ يعتبر تجريبيًا. ومع ذلك، الدعم جيد بما يكفي بحيث يبدأ مطورو kernel في العمل في تجريدات الصدأ لكتابة الأنظمة الفرعية وأجهزة التحكم والوحدات النمطية الأخرى. لقد وصلت السلسلة الحالية للتو إلى Linux-next ، لذا ستبدأ الجولة الأولى هذا الأسبوع.

مصدر: https://lkml.org/lkml


اترك تعليقك

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

*

*

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