تم إصدار مشروع uutils coreutils 0.10.0 (Rust Coreutils)، وهو تطوير لحزمة GNU Coreutils، مكتوب بلغة Rust. تتضمن coreutils أكثر من 100 أداة مساعدة، منها sort وcat وchmod وchown وchroot وcp وdate وdd وecho وhostname وid وln وls. يهدف المشروع إلى إنشاء بديل متعدد المنصات لـ Coreutils، قادر على العمل على منصات تشمل Windows، ريدوكس وفوشيا.
تم تفعيل Rust Coreutils افتراضيًا في الإصدار Ubuntu 25.10 وجزئياً في Ubuntu ٢٦ أبريل. تُستخدم مكتبة Rust Coreutils أيضًا في توزيعات AerynOS (نظام التشغيل Serpent OS) وApertis (التي طورتها شركة Collabora). على عكس مكتبة GNU Coreutils، تُوزع نسخة Rust منها بموجب ترخيص MIT المُتساهل، بدلًا من ترخيص GPL ذي الحقوق المفتوحة. إضافةً إلى ذلك، يعمل الفريق نفسه من المطورين على تطوير نسخ مُكافئة بلغة Rust لمجموعات الأدوات المساعدة util-linux وdiffutils وfindutils وprocps وacl، فضلًا عن برنامجي sed وlogin.
في الإصدار الجديد من Rust Coreutils:
- بلغت نسبة التوافق مع مجموعة اختبارات GNU Coreutils المعيارية 93.48% (بانخفاض عن 90.58%). أُنجز 645 اختبارًا بنجاح، أي بزيادة 20 اختبارًا عن الإصدار السابق (625). فشل 29 اختبارًا (بانخفاض عن 56)، ونتج عن اختبار واحد خطأ، وتم تخطي 15 اختبارًا (بانخفاض عن 8).
- تم إصلاح بعض التناقضات مع GNU Coreutils في سلوك أدوات pr و nproc و date و numfmt و ls و du و install و od و truncate و fold و head/tail و sum و stat.
- استمر العمل على تعزيز الأمن لمنع الثغرات الأمنية الناجمة عن حالات التزامن، والتي تسمح بتعديل البيانات بعد التحقق من المعلومات ولكن قبل تنفيذ العملية. على سبيل المثال، يمكن استبدال ملف برابط رمزي بين اكتمال التحقق وبدء العملية. عند استخدام أدوات cp وchmod وmv في البرامج النصية للنظام التي تُشغَّل بصلاحيات الجذر، تسمح هذه الثغرات بنسخ أو استبدال أي ملفات. وقد تم تعزيز الأمن لأدوات touch وmkfifo وmkdir وmknod وmv وchroot وhead وsplit وchcon.
- تم تنفيذ العمل للقضاء على حالات الإنهاء غير الطبيعية عبر آلية الذعر في الأدوات المساعدة shuf و printf و numfmt و fmt و pr و chroot و dircolors و install و ln و touch و stat و split و expand و more و kill و cp و du و rm و runcon و sort و chown/chgrp و dirname و expr و cksum و dd و truncate و hashsum.
- تم تحسين أداء الأدوات المساعدة التالية: cksum، sum، split، expand/unexpand، base*، tee، cat، cp، mv، expr، uniq، و du.
- تمت إضافة دعم لهدف البناء wasm32-wasip2.
- تُنفذ أداة mv خيار "--exchange" لتبادل ملفين أو مجلدين.
- تقوم أداة التثبيت بتنفيذ خيار "--reflink" وتوفر إمكانية استخدام خياري "-C" و "--preserve-timestamps" معًا.
- تمت إضافة خيار "--one-file-system" إلى أداة rm.
- توفر أداة القطع إمكانية العمل مع ترميزات متعددة البايت عند استخدام لغات غير UTF-8.
- يتم استخدام الواجهة الخلفية لـ OpenSSL لحساب المجاميع الاختبارية بسرعة.
المصدر: opennet.ru
