البرمجة وتطوير البرمجيات

كيف تعيد Ubuntu بناء أدوات النظام الأساسية باستخدام Rust

تتبنى Canonical نهجاً انتقائياً لإدخال Rust إلى أدوات Ubuntu الأساسية، بدءاً من Ubuntu 26.04 LTS، مع التركيز على أمان الذاكرة والاعتمادية وقابلية الصيانة. وتشمل الخطة uutils coreutils وsudo-rs وntpd-rs ومشروع UPKI، مع إبقاء الأدوات القديمة وخيارات التراجع متاحة خلال مرحلة الانتقال.

26 أغسطس 2026
5 دقائق قراءة
0 قراءة
فريق تحرير certi.news
كيف تعيد Ubuntu بناء أدوات النظام الأساسية باستخدام Rust

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

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

استبدالات انتقائية بدلاً من إعادة كتابة شاملة

وصلت أولى هذه المكونات إلى Ubuntu 26.04 LTS. فقد أصبحت uutils coreutils، وهي إعادة تنفيذ لأدوات GNU coreutils بلغة Rust، الخيار الافتراضي، مع هدف معلن يتمثل في تحقيق توافق كامل مع سلوك أدوات GNU. ويعني ذلك أن اختلافاً صغيراً في السلوك لا يُعامل بالضرورة كتحسين، بل قد يُعد خطأ إذا كسر نصاً برمجياً أو أداة تعتمد على السلوك القديم.

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

الوقت والشهادات ضمن نطاق التغيير

المشروع التالي هو ntpd-rs، الذي أعلنت Canonical في يونيو 2026 تمويله عبر Trifecta Tech Foundation بهدف جعله أداة مزامنة الوقت الافتراضية في Ubuntu. وتتمثل الخطة في أرشفته ضمن Ubuntu 26.10، ثم التحول الكامل إليه كخيار افتراضي في Ubuntu 28.04، ليحل تدريجياً محل chrony وlinuxptp من خلال أداة واحدة تدعم NTP وNTS وPTP.

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

ويختلف مشروع UPKI عن هذه الاستبدالات لأنه مشروع جديد من الصفر بالتعاون مع مشروع Rustls، ويستهدف إضافة التحقق من إبطال الشهادات إلى أدوات النظام في Linux. وتستهدف Canonical وصوله الأول إلى Ubuntu 26.10. وترتبط الفكرة بأدوات مثل curl وwget وOpenSSL، التي تقول المادة إن هذا النوع من التعامل مع إبطال الشهادات لم يصبح فيها مدمجاً بالطريقة نفسها الموجودة في المتصفحات.

ما الذي يتغير عملياً للمستخدمين؟

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

لكن التوافق ليس موحداً بين المشاريع. فقد واجهت uutils coreutils مثالاً عملياً عندما أعادت أداة head خطأً عند طلب قراءة عدد من البايتات من ملف فارغ، في حين كانت GNU coreutils تعيد صفراً. أدى هذا الاختلاف إلى كسر نص برمجي مخفي داخل حزمة Obsidian snap، فعُدّل السلوك ليتطابق مع GNU. يوضح المثال أن أمان الذاكرة لا يلغي أهمية التوافق مع افتراضات تراكمت حول الأدوات القديمة على مدى 30 عاماً.

التحدي لا ينتهي عند كتابة الكود

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

وفي وقت سابق من 2026، جرى تعميم cargo auditable على جميع حزم Rust في أرشيف Ubuntu. وتحتوي كل ثنائية Rust على SBOM مضمّن يسجل أسماء crates وإصداراتها المستخدمة في البناء، ويتحدث تلقائياً عند إعادة بناء الحزمة. هذه البيانات لا تمنع الثغرات، لكنها تجعل تحديد الإصدارات المتأثرة عند اكتشاف مشكلة في إحدى التبعيات أكثر مباشرة.

قراءة certi.news: التغيير الحقيقي هنا ليس استبدال أدوات مكتوبة بلغة C بأخرى مكتوبة بلغة Rust فحسب، بل إدخال طبقة أمان وصيانة وتتبّع تبعيات إلى مكونات يصعب تغييرها بعد انتشارها. وفي المقابل، تكشف أمثلة التوافق وسلوك sudo-rs أن الانتقال قد يفرض قرارات تصميمية يلاحظها المستخدمون، وأن نجاحه سيعتمد على إدارة تلك الفروق بقدر اعتماده على لغة التنفيذ. وتبقى المواعيد المعلنة لـ ntpd-rs وUPKI أهدافاً مستقبلية، بينما يثبت المصدر أن نطاق التغيير انتقائي وأن الأدوات القديمة وخيارات التراجع ما زالت جزءاً من استراتيجية Canonical.

مصدر الخبر
كيف أعددنا هذا الخبر؟

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

ف
كاتب المقال

فريق تحرير certi.news

فريق التحرير

فريق تحرير certi.news يتابع المصادر التقنية ويعيد بناء الأخبار بالعربية مع مراجعة الحقائق والسياق قبل النشر.

من نفس التصنيف

مقالات قد تهمك

عرض جميع المقالات