تم نشر الإصدار الخامس من التصحيحات الخاصة بدعم برنامج تشغيل Rust على نظام Linux

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

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

حاليا، تمول Google و ISRG لجنة تطوير ميغيل أوجيدا (مجموعة أبحاث أمان الإنترنت) ، وهي مؤسسة مشروع Let's Encrypt وتعزز HTTPS وتطوير التقنيات لزيادة أمان الإنترنت.

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

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

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

المستجدات الرئيسية في الاقتراح الخامس

في الإصدار الجديد من الباتشات ، واصل حذف التعليقات تم إجراؤه أثناء مناقشة بقع الطبعة الأولى والثانية والثالثة والرابعة.

في جزء التغييرات والتحسينات التي تم إجراؤها يمكننا أن نجد أن التحقق من صحة المكون من أجل التوافق مع Rust تم إضافته إلى نظام التكامل المستمر استنادًا إلى برنامج الروبوت 0DAY / LKP المتوافق من Intel وبدأ نشر تقارير الاختبار.

بالإضافة إلى ذلك ، تم تسليط الضوء على أن يتم إعداد تكامل دعم الصدأ في نظام الاختبار الآلي KernelCI ، بالإضافة إلى تم تحويل الاختبارات المستندة إلى GitHub CI إلى استخدام الحاويات.

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

من التغييرات الأخرى التي تبرز في هذا الاقتراح الجديد لوحدات التحكم:

  • لا تحتاج وحدات Rust Core إلى تحديد السمات: "#! [no_std]" و "#! [feature (...)]".
  • تمت إضافة دعم لأهداف بناء واحد (.o و. s و .ll و. i).
  • تحدد إرشادات الكود الآن قواعد لتحديد التعليقات ("//") وتوثيق التعليمات البرمجية ("///").
  • إدارة قفل مبسطة: يتم دمج Guard و GuardMut في نوع معلمات واحد.
  • تمت إضافة التجريد "RwSemaphore" ، والذي يعمل كغلاف فوق هيكل C rw_semaphore.
  • لاستخدام mmap ، تمت إضافة وحدة مم جديدة وتجريد VMA (ملزم على بنية vm_area_struct).
  • تم تغيير وحدة التحكم PL061 GPIO لاستخدام الماكرو "dev_ *!".
  • تنظيف التعليمات البرمجية العامة.

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


اترك تعليقك

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

*

*

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