بدأت الجهود المبذولة لكتابة بديل قائم على الصدأ لـ GNU Coreutils تؤتي ثمارها ، حيث تم الإعلان مؤخرًا عن أن المشروع يسير على الطريق الصحيح لإجراء تحسينات كبيرة على تنفيذ C السابق. يواصل Rust Coreutils أيضًا زيادة مستوى توافقه مع GNU Coreutils.
المشروع uutils ، أيضا المعروف باسم Rust Coreutils ، يهدف إلى إعادة الكتابة في Rust all ال المرافق الفردية المدرجة في مشروع GNU Coreutils. تم إنشاء المشروع في الأصل بواسطة Jordi Boggiano في عام 2013 ، ويهدف المشروع إلى توفير بدائل فورية لبرامج Coreutils ، مما يضيف حماية التزامن وسلامة الذاكرة التي يوفرها Rust.
نواة الصدأ يتضمن برامج معالجة الملفات والعمليات والنص الأساسية التي من المفترض أن تكون موجودة في جميع أنظمة التشغيل القائمة على جنو.
تم إنشاء مشروع Coreutils لدمج ثلاث مجموعات أدوات تم عرضها مسبقًا بشكل منفصل ، Fileutils و Textutils و Shellutils ، جنبًا إلى جنب مع مجموعة متنوعة من الأدوات المساعدة الأخرى. العديد من البرامج المضمنة في المشروع ، مثل rm و du و ls و cat ، كانت موجودة منذ عقود ، وبينما توجد تطبيقات أخرى ، فإن هذه الأدوات المساعدة غير متوفرة لمنصات مثل Windows في شكلها الأصلي.
بشكل جماعي ، يُنظر إلى برامج Coreutils على أنها ثمار ناضجة يمكن إنتاج نسخة صالحة قائمة على Rust لها في وقت معقول. متطلبات كل أداة واضحة والعديد منها بسيط من الناحية المفاهيمية.وهو ما لا يعني أن العمل سهل.
وفقا للمؤلفين ، سيساعد استخدام Rust في هذا المشروع في تسريع هذه العملية، حيث يتم التخلص تمامًا من العديد من أخطاء الذاكرة وغيرها من السلوكيات غير المحددة. كما أنه يفتح الباب أمام تعدد مؤشرات الترابط الفعال والخالي من التزامن.
هذا قد تسرع بعض البرامج في ظل ظروف معينة. يوفر Rust Coreutils أيضًا فرصة ليس فقط لإعادة تنفيذ Coreutils ، ولكن أيضًا لتحسين وظائف بعض الأدوات المساعدة لتوفير تجربة مستخدم أفضل مع الحفاظ على التوافق مع إصدارات GNU.
على سبيل المثال ، طلبات الميزات التي تم رفضها منذ فترة طويلة في مشروع Coreutils ، مثل إضافة خيار شريط التقدم لأدوات مساعدة مثل mv و cp ، تتم معالجتها حاليًا في إعادة كتابة لغة Rust.
حاليًا ، هناك العشرات من المساهمين الذين يساهمون بأكثر من 400 إصلاح لهذا الجهد كل شهر والذين أيضًا تواصل مع التحدي المتمثل في سد فجوة التوافق من هذه الأدوات مع أوامر المنبع جنو.
الملف الثنائي الوحيد المتبقي المراد تنفيذه هو "stty" ، أنه بالإضافة إلى أعمال التحسين والتوافق ، سيعمل المطورون أيضًا على السماح لـ Debian و Ubuntu بالتبديل بسهولة إلى Rust Coreutils افتراضيًا دون الحاجة إلى أي تعديل أو تهيئة خاصة.
على الرغم من التقدم الكبير الذي تم إحرازه في جلب الأدوات المساعدة إلى حالة قابلة للاستخدام ، سوف يستغرق الأمر بعض الوقت للوصول إلى استقرار ونضج GNU Coreutils. أيضًا ، أحد الجوانب المهمة في مشروع uutils الذي يجب مراعاته هو ترخيصه. جميع المرافق في المشروع مرخصة بموجب ترخيص MIT المسموح به ، بدلاً من ترخيص GNU Coreutils GPLv3.
قرار استخدام رخصة معهد ماساتشوستس للتكنولوجيا لا يخلو من النقد. كان بعض الذين علقوا على هذا الاختيار يفضلون ترخيص الحقوق المتروكة للتقدم لمثل هذا المشروع.
النقد الرئيسي يردد صدى الحجج حول تراخيص البرمجيات الحرة في الماضي:
"الترخيص غير المتروكة يضر بحريات المستخدمين النهائيين ، لأنه يسمح لأي شخص أو مؤسسة بدمج أي جزء من المشروع في جهاز واحد أو في توزيع الآخرين." البرنامج دون توفير الكود المصدري ، لذلك من المستحيل دراسته أو تعديله أو تحسينه.
هناك أيضًا قلق من أن اختيار الترخيص يتم من أجل تعظيم استخدام الصدأ دون مراعاة التأثيرات الأخرى ؛ يعتبر البعض استبدال الأدوات المرخصة GPL ببدائل أكثر تساهلاً على أنها خطوة إلى الوراء.
أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.