تصحيحات النواة للإصدار الرابع Linux مع دعم لغة Rust

ميغيل أوجيدا، مؤلف مشروع Rust-for-Linuxمقترح للنظر فيه من قبل مطوري النواة Linux الإصدار الرابع من مكونات تطوير برامج تشغيل الأجهزة بلغة Rust. يُعتبر دعم Rust تجريبيًا، ولكنه مُعتمدٌ بالفعل للإدراج في فرع linux-next، وهو ناضجٌ بما يكفي لبدء العمل على إنشاء طبقات تجريدية فوق أنظمة النواة الفرعية، بالإضافة إلى كتابة برامج التشغيل والوحدات النمطية. يتم تمويل التطوير من قِبل جوجل ومجموعة أبحاث أمن الإنترنت (ISRG)، وهي الجهة المؤسسة لمشروع Let's Encrypt، الذي يُروج لبروتوكول HTTPS وتطوير التقنيات لتحسين أمن الإنترنت.

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

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

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

  • تم الانتقال إلى استخدام الإصدار المستقر من Rust 1.58.0 كمترجم مرجعي. من بين التغييرات الضرورية للمشروع، والتي لم يتم تضمينها بعد في مجموعة أدوات Rust الرئيسية، علامة "-Zsymbol-mangling-version=v0" (المتوقعة في Rust 1.59.0) ووضع "maybe_uninit_extra" (المتوقع في Rust 1.60.0) .XNUMX) تمت الإشارة إليه.
  • تمت إضافة عمليات فحص تلقائية لتوفر أدوات Rust المناسبة وتوسيع القدرة على اختبار دعم Rust في النظام.
  • تم اقتراح تجريدات جديدة للوصول إلى جداول معرفات الأجهزة ("IdArray" و"IdTable") من كود Rust.
  • تمت إضافة طبقات للوصول إلى الوظائف المتعلقة بالمؤقت (إطار الساعة).
  • يتم الآن تعريف برامج تشغيل النظام الأساسي من خلال تطبيقات السمات.
  • تمت إضافة ماكرو جديد لتبسيط تسجيل برامج تشغيل النظام الأساسي، وتم اقتراح قالب برنامج تشغيل عام جديد.
  • تمت إضافة وحدات ماكرو لهياكل "dev_*".
  • تمت إضافة طرق "{read,write}*_relaxed" لنوع IoMem .
  • تمت إزالة خاصية FileOpener لتبسيط عمليات الملف.
  • تمت إضافة المعلمة "ThisModule" إلى الوسائط التي تم تمريرها عند تسجيل برنامج التشغيل.
  • يُقترح قالب قياسي لإنشاء وحدات kernel بلغة Rust.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster