Dự án uutils coreutils 0.11.0 (Rust Coreutils), một dự án phát triển từ gói GNU Coreutils, được viết bằng ngôn ngữ Rust, đã được phát hành. coreutils bao gồm hơn 100 tiện ích, trong đó có sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln và ls. Mục tiêu của dự án là tạo ra một giải pháp thay thế đa nền tảng cho Coreutils, có khả năng chạy trên nhiều nền tảng khác nhau, bao gồm... Windows, Redox và Fuchsia.
Rust Coreutils được bật mặc định trong bản phát hành. Ubuntu 25.10 và một phần trong Ubuntu Ngày 26 tháng 4. Rust Coreutils cũng được sử dụng trong các bản phân phối AerynOS (Serpent OS) và Apertis (do Collabora phát triển). Không giống như GNU Coreutils, phiên bản Rust được phân phối theo giấy phép MIT cho phép sử dụng tự do, thay vì giấy phép GPL copyleft. Ngoài ra, cùng một nhóm các nhà phát triển đang phát triển các phiên bản tương đương dựa trên Rust của các bộ tiện ích util-linux, diffutils, findutils, procps và acl, cũng như các chương trình sed và login.
Trong phiên bản mới của Rust Coreutils:
- Tỷ lệ tương thích với bộ công cụ đo hiệu năng GNU Coreutils là 95.33% (giảm từ 94.44%). Có 653 bài kiểm tra thành công, nhiều hơn 8 bài so với phiên bản trước (645). Có 22 bài kiểm tra thất bại (giảm từ 29) và 15 bài kiểm tra bị bỏ qua (giảm từ 15).
- Một công cụ chẩn đoán mới dựa trên thư viện ariadne đã được tích hợp. Nó hiển thị báo cáo lỗi trực quan khi chạy các tiện ích trong terminal, làm nổi bật các đối số dòng lệnh gây ra sự cố. Chức năng hiển thị lỗi được bật trong các tiện ích sau: chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df và du. Biến môi trường UUTILS_DIAG được đề xuất để vô hiệu hóa báo cáo chẩn đoán.

- Tối ưu hóa dựa trên hồ sơ (PGO) được kích hoạt trong quá trình biên dịch bản phát hành, tạo ra mã tối ưu hơn dựa trên phân tích hành vi thực thi chương trình. Các nhà phát triển ước tính hiệu suất tăng lên tới 31% đối với một số thao tác.
- Các tối ưu hóa hiệu năng đã được thực hiện cho các tiện ích cp (+32.93%), join (nhanh hơn 2.5 lần so với GNU nhờ vô hiệu hóa các phép so sánh ngôn ngữ không cần thiết), od, ptx (+4%), nl, tail, expand, unexpand, numfmt và sort. Các trường hợp có thao tác chậm hơn đáng kể so với GNU Coreutils hiện được coi là lỗi.
- Đã khắc phục một số điểm không nhất quán với GNU Coreutils trong hoạt động của các tiện ích pr, numfmt, join, id, mkdir, fold, sort, stat, od và date.
- Đã triển khai các tùy chọn dành riêng cho GNU Coreutils: "uname -A", "uname --all-labeled", "cut -F", "cut --whitespace-delimited", "pr --columns", "pr --join-lines", "pr -f".
- Các tiện ích mv, cp, rm, chmod và stdbuf đã được tăng cường để ngăn chặn các lỗ hổng do điều kiện tranh chấp gây ra, có thể cho phép sửa đổi dữ liệu sau khi thông tin đã được xác minh nhưng trước khi thao tác được thực hiện. Ví dụ, một tệp có thể được thay thế bằng một liên kết tượng trưng giữa thời điểm hoàn tất xác minh và thời điểm bắt đầu thao tác. Khi sử dụng các tiện ích cp, chmod và mv trong các tập lệnh hệ thống được chạy với quyền root, các lỗ hổng như vậy có thể cho phép sao chép hoặc ghi đè các tệp tùy ý.
- Công việc đã được thực hiện để loại bỏ các sự cố xảy ra trong các tiện ích split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac và who.
- Đã triển khai các biến thể của tiện ích tắt và theo dõi thời gian hoạt động cho Windows.
- Đã loại bỏ các gói byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (gần đây bị xâm phạm), exacl và dns-lookup, thay vào đó sử dụng các hàm từ thư viện std, rustix và windows-sys.
- Các tiện ích ls và comm hiện hỗ trợ thuộc tính ngôn ngữ "collation", cho phép thực hiện các phép so sánh có tính đến ý nghĩa của các ký tự (ví dụ: dấu nhấn có thể bị bỏ qua trong quá trình so sánh).
- Cải thiện khả năng xử lý các ký tự đa byte trong các tiện ích nl và cut.
Ngoài ra, Canonical đã phát hành hai ảnh container thử nghiệm dành cho việc phát triển Rust tuân thủ tiêu chuẩn Dev Container. Ảnh container đầu tiên bao gồm Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (một trình thông dịch để phát hiện hành vi không xác định), cargo-auditable (kiểm tra quá trình xây dựng), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh và curl. Ảnh container thứ hai cũng bao gồm các gói phát triển. Ubuntu: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.
Nguồn: opennet.ru

