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

اقترح ميغيل أوجيدا، مؤلف مشروع Rust-for-Linux، إصدار الإصدار 10 من المكونات لتطوير برنامج تشغيل جهاز Rust ليأخذه مطورو Linux kernel بعين الاعتبار. هذه هي الطبعة الحادية عشرة من التصحيحات، مع الأخذ في الاعتبار الإصدار الأول الذي تم نشره بدون رقم إصدار. تمت الموافقة على إدراج دعم Rust بواسطة Linusum Torvalds لتضمينه في Linux 6.1 kernel، ما لم تظهر مشكلات غير متوقعة. يتم تمويل التطوير من قبل Google وISRG (مجموعة أبحاث أمن الإنترنت)، وهي مؤسس مشروع Let's Encrypt وتقوم بترويج HTTPS وتطوير التقنيات لزيادة أمان الإنترنت.

مثل الإصدار السابق من التصحيحات، تم تجريد الإصدار v10 إلى الحد الأدنى المطلوب لإنشاء وحدة نواة بسيطة مكتوبة بلغة Rust. تعود الاختلافات عن الإصدار السابق إلى إصلاحات بسيطة، حيث تم استبدال sizeof بـ ARRAY_SIZE في kallsyms.c وتكييف التصحيحات مع نواة v6.0-rc7. من المتوقع أن يؤدي الحد الأدنى من التصحيح، الذي تم تخفيضه من 40 ألف إلى 13 ألف سطر من التعليمات البرمجية من XNUMX إلى XNUMX سطر من التعليمات البرمجية، إلى تسهيل دمج دعم Rust في الاتجاه السائد. بعد توفير الحد الأدنى من الدعم، من المخطط زيادة الوظائف الحالية تدريجيًا، ونقل التغييرات الأخرى من فرع Rust-for-Linux.

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

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

المصدر: opennet.ru

إضافة تعليق