يواجه دعم الصدأ لنواة Linux انتقادات من Torvalds

قام Linus Torvalds بمراجعة التصحيحات التي نفذت القدرة على إنشاء برامج تشغيل بلغة Rust لنواة Linux، وقدم بعض التعليقات النقدية.

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

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

بالإضافة إلى ذلك، أشار تورفالدس إلى أن مثال برنامج التشغيل المقدم كان عديم الفائدة ونصحنا بأن نستخدم كمثال بعض برامج التشغيل التي تحل إحدى المشكلات الحقيقية.

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

تجدر الإشارة إلى أن Google قد أعدت نموذجًا أوليًا لبرنامج تشغيل مكتوب بلغة Rust لآلية الاتصال بين العمليات الخاصة بـ Binder، والذي سيسمح بإجراء مقارنة تفصيلية لأداء وأمان تطبيقات Binder في C وRust. في شكله الحالي، لم يكتمل العمل بعد، ولكن تقريبًا لجميع التجريدات الأساسية لوظيفة kernel اللازمة لعمل Binder، تم إعداد الطبقات لاستخدام هذه التجريدات في كود Rust.

المصدر: opennet.ru

إضافة تعليق