تم بالفعل إطلاق الإصدار الثالث من التصحيحات الخاصة بدعم برنامج تشغيل Rust في Linux

بعد ستة أشهر من نشر النسخة الثانية, ميغيل أوجيدا، مؤلف مشروع Rust-for-Linux ، عرض اقتراح الخيار الثالث لتطوير برامج تشغيل الأجهزة بلغة Rust في Linux Kernel.

يعتبر دعم الصدأ تجريبيًا ، ولكن تم الاتفاق بالفعل على إدراجه في فرع linux-next. تم تمويل التطوير من قبل Google ومنظمة ISRG (مجموعة أبحاث أمان الإنترنت) ، وهي مؤسسة مشروع Let's Encrypt وتساهم في الترويج لـ HTTPS وتطوير تقنيات لتحسين أمان الإنترنت.

يجب أن نتذكر أن التغييرات المقترحة تسمح باستخدام Rust كلغة ثانية لتطوير محركات ووحدات kernel.

السائقين الصدأ على لينكس
المادة ذات الصلة:
تم بالفعل شحن الإصدار الثاني من التصحيحات الخاصة بدعم برنامج تشغيل Rust على نظام Linux

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

يستمر الإصدار الجديد من التصحيحات في التخلص من التعليقات التي تم الإدلاء بها أثناء مناقشة الإصدارين الأول والثاني من التصحيحات وأبرز التغييرات التي يمكن أن نجدها:

تم الانتقال إلى إصدار مستقر Rust 1.57 كمترجم مرجعي وربط للإصدار المستقر من لغة Rust 2021 تم تأمين الانتقال إلى مواصفات Rust 2021 pيسمح ببدء العمل لتجنب استخدام مثل هذه الميزات غير المستقرة في بقع مثل const_fn_transmute و const_panic و const_unreachable_unchecked و core_panic و try_reserve.

كما يبرز ذلك استمر تطوير نسخة التخصيص من مكتبة Rust ، في الإصدار الجديد ، يتم تنفيذ خياري "no_rc" و "no_sync" لتعطيل الوظيفة والتي لم يتم استخدامها في كود Rust للنواة ، مما يجعل المكتبة أكثر نمطية. نواصل العمل مع مطوري التخصيص الرئيسيين لإدخال تغييرات kernel الضرورية إلى المكتبة الرئيسية. تم نقل الخيار "no_fp_fmt_parse" ، المطلوب للمكتبة لتعمل على مستوى kernel ، إلى مكتبة Rust الأساسية (kernel).

تم تنظيف الكود لإزالة تحذيرات المترجم المحتملة عند تجميع النواة في وضع CONFIG_WERROR. عند إنشاء رمز في Rust ، يتم تضمين أوضاع المترجم التشخيصي الإضافية وتحذيرات Clippy linter.

اقترحوا التجريدات لاستخدام seqlocks (أقفال التسلسل) ، واستدعاءات رد الاتصال لإدارة الطاقة ، وذاكرة الإدخال / الإخراج (readX / writeX) ، ومعالجات المقاطعة والخيط ، و GPIO ، والوصول إلى الجهاز ، وبرامج التشغيل ، وبيانات الاعتماد في رمز الصدأ.

تم توسيع أدوات تطوير السائق من خلال استخدام كائنات المزامنة القابلة للنقل ، ومكرر البت ، والربط المبسط عبر المؤشرات ، وتشخيص الأخطاء المحسّن ، والبنية التحتية المستقلة لناقل البيانات.

تم تحسين العمل مع الروابط باستخدام نوع المرجع مبسطة ، على أساس الواجهة الخلفية refcount_t ، والتي تستخدم واجهة برمجة التطبيقات المركزية التي تحمل نفس الاسم لحساب عدد المراجع. تمت إزالة دعم أنواع Arc و Rc المتوفرة في مكتبة الخرائط القياسية ولا يتوفر في التعليمات البرمجية المنفذة على مستوى النواة (بالنسبة للمكتبة نفسها ، تم إعداد الخيارات لتعطيل هذه الأنواع).

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

تتبنى قاعدة الكود الرئيسية لـ Rust rustc_codegen_gcc ، وهي الواجهة الخلفية للغة العربية لدول مجلس التعاون الخليجي التي تنفذ تجميع AOT باستخدام مكتبة libgccjit. مع التطوير المناسب للواجهة الخلفية ، سيسمح لك بجمع كود Rust المتضمن في النواة باستخدام GCC.
بالإضافة إلى ARM و Google و Microsoft ، أعربت Red Hat عن اهتمامها باستخدام Rust في Linux kernel.

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


اترك تعليقك

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

*

*

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