بحث
لماذا يثير Rust حماس المطورين في نواة لينكس؟
أخرى #Rust #نواة_لينكس

لماذا يثير Rust حماس المطورين في نواة لينكس؟

تاريخ النشر: آخر تحديث: 18 مشاهدة 0 تعليق 4 دقائق قراءة
18 مشاهدة
0 إعجاب
0 تعليق
موثوق 95%

تتغير الأمور ببطء في نواة لينكس، والتغيير هنا أساسي للمبرمجين: اللغة التي يكتبون بها. هذه الخطوة المؤثرة يجب التعامل معها بحذر، لكنها تستحق الاحتفال.

ما هي اللغة المستخدمة في كتابة نواة لينكس حاليًا؟

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

بدأ لينوس تورفالدز تطوير النواة في عام 1991، مستخدمًا لغة C (وهي لغة منخفضة المستوى) وAssembly (وهي من أدنى المستويات). على الرغم من المحاولات لإدخال دعم لغات أعلى، مثل C++ في عام 1997، إلا أن النواة ظلت تعتمد على C منذ ذلك الحين. حتى اليوم، تشير مستودعات GitHub إلى أن 98% من كود النواة مكتوب بلغة C.

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

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

ما الذي يتغير الآن؟

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

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

برنامج Tyr لبرامج تشغيل ARM Mali GPUs هو مثال معاصر على العمل الذي يتم باستخدام Rust for Linux. هذه السائق الرسومي للنواة مكتوب بلغة Rust ويهدف إلى توسيع نطاق العمل النظري الذي تم إنجازه حتى الآن. وجود سائق حقيقي يعتمد على التوافق الحالي يعني أن هناك اختبارًا واقعيًا للعمل الذي تم حتى الآن. يجب أن يساعد ذلك في تشجيع تقدم أسرع لمبادرة Rust for Linux.

لماذا يعتبر هذا أمرًا جيدًا؟

تصف موقع Rust حاليًا بأنه:

لغة تمكّن الجميع من بناء برمجيات موثوقة وفعّالة.

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

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

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

الأخطاء في النواة تعتبر خبيثة بشكل خاص لأنها يمكن أن تؤثر على أي كود برنامج آخر يعمل في ذلك الوقت. كما يمكن أن تكون صعبة الاكتشاف، ونظرًا لأن الكود الذي تسكنه هذه الأخطاء مُحسَّن بشكل كبير، يصعب تشخيصها وإصلاحها. يمكن أن تكون الأخطاء في النواة أكثر كارثية بكثير من الأخطاء في التطبيقات: يمكن أن تؤدي إلى انهيار أنظمة كاملة وفتح ثغرات أمنية يمكن استغلالها من قبل الجهات السيئة.

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

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

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

التعليقات 0

سجل دخولك لإضافة تعليق

لا توجد تعليقات بعد. كن أول من يعلق!