يبدو أن هذا العام لن يكون عام لينكس، فرغم أن الربع الأخير من العام الماضي كان يشير إلى أن لينكس وأجهزة الكمبيوتر المكتبية سوف تنطلق في عام 2025، إلا أن الأمور ليست دائمًا كما تبدو.
وهي مجرد أيام قليلة كريستوف هيلويج، شخصية بارزة في صيانة الأنظمة الفرعية الهامة مثل DMA وKVM وSlab Allocator وPowerPC في نواة Linuxوقد أوضحت الشركة رفضها لدعم التصحيحات التي تسهل التنمية من وحدات التحكم في Rust.
كريستوف هيلويج يذكر أن التصحيحات المذكورة لقد اقترحوا تضمين غلافات حول وظائف نظام فرعي DMA للسماح للبرامج المكتوبة في Rust باستخدامها. ومع ذلك، فهو يزعم أن هذه الاستراتيجيةيؤدي ذلك إلى تعقيد صيانة الكود ويجب الحفاظ على وضوح واجهات C، مما يمنع توسيع التجريدات التي قد تعيق التكامل مع بقية النواة.
مشاكل خلط اللغات في المشروع
وفقا لهيلويج، المشكلة الرئيسية هي أن تكامل كود Rust يولد تبعيات تجبر مطوري نظام فرعي C على مراعاة تأثير تعديلاتهم على كود ربط Rust. هذا وهذا يعني أن أي تعديلات على الهياكل أو وظائف داخلية في C قد يتطلب إجراء تغييرات موازية على كود Rust، مما يخلق سيناريو يصعب الحفاظ عليه على المدى الطويل.
لتجنب هذا الوضع، هيلويج يوصى بأن تتمكن وحدات التحكم في Rust من الوصول مباشرة إلى إلى واجهة برمجة التطبيقات DMA الأصلية في C، بدلاً من اللجوء إلى غلافات إضافية يعتقدون أنها قد تعرض قابلية صيانة النواة للخطر.
وفي الوقت نفسه، زعم المطورون الذين اقترحوا التصحيحات أنهم سيتولون مهمة الصيانة من كود Rust، ولهذا الغرض، قمنا بتنظيم الروابط في دليل فرعي محدد (rust/kernel/dma.rs). لكن، وقد استخدم هيلويج حق النقض ضد هذه المقترحات، محذرا من أنه لا ينبغي له أن يتحمل المسؤولية. دمج الكود من لغات أخرى في الأنظمة الفرعية الأساسية.
بالإضافة إلى ذلك، علق بقوة على أنه إذا كنت تريد تحويل النواة إلى فسيفساء من اللغات المتعددة، فيجب عليك البدء ببرامج تشغيل Rust بدلاً من فرض هذا التعقيد في المجالات الأساسية.
اشتد الجدل عندما شارك أشخاص مثل جيسون غونثورب، مسؤول صيانة TPM وVFIO وInfiniband في NVIDIA، أمثلة حول كيفية إجراء تغييرات على أنظمة فرعية للذاكرة، على الرغم من أنها صحيحة من منظور كود C، تم إنشاء مشاكل عند محاولة تجميع النواة مع دعم Rust. أوضحت هذه الحوادث أن الارتباطات بين C وRust يمكن أن تؤدي إلى إدخال تبعيات إضافية تجعل التطوير المنسق أمرًا صعبًا.
ومن الجدير بالذكر أن ولم يقتصر النقاش على الجوانب الفنية. واقترح هيكتور مارتن أن الحل قد يكون في اعتماد الرابط مباشرة من خلال لينوس تورفالدس، وتجنب تدخل المشرف على نظام فرعي DMA. ومع ذلك، فإن هذا النهج قد يعطل الهيكل الهرمي التقليدي لتطوير النواة.
وأشار هيكتور أيضًا إلى السلوكيات التي اعتبرها سامة، حتى أنه ذكر أن انتقادات هيلويج، الذي قارن Rust بـ "الورم السرطاني"، ساهمت في إحباطه وفي النهاية قراره بالتنحي عن منصبه كصيانة لمنصة ARM/Apple على نواة الخط الرئيسي. ورغم استقالته، ستواصل المنصة تلقي الدعم من سفين بيتر، الذي تعهد بمواصلة الحفاظ عليها.
من جانبها، لينوس تورفالدس انضمت إلى المحادثة, مؤكدا أن عملية التنمية من النواة، على الرغم من عدم الكمال، يعمل وأن المناقشات الفنية يجب أن تركز على التصحيحات، دون التأثر بالضغوطات الخارجية أو المضايقات على مواقع التواصل الاجتماعي. ويرى تورفالد أن النهج ينبغي أن يكون فنيا بحتاً، وأن يترك جانبا النزاعات الشخصية.
يسلط رفض Christoph Hellwig دمج غلافات Rust في نظام DMA الضوء على التوترات بين مطوري نواة Linux. في حين يرى البعض أن Rust هي أداة قوية لإنشاء مشاريع جديدة، يخشى البعض الآخر من أن دمج لغات متعددة قد يعيق إمكانية الصيانة وتناسق قاعدة التعليمات البرمجية.
لا يزال الوضع موضع نقاش وقد يكون له آثار كبيرة على مستقبل دعم Rust في النواة. على أية حال، من الواضح أن مجتمع تطوير Linux لا يزال يواجه تحديات معقدة، حيث يجب قياس القرارات الفنية بعناية لضمان استدامة المشروع على المدى الطويل.