שחרור uutils 0.11, גרסת Rust של GNU Coreutils

פרויקט uutils coreutils 0.11.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 26.04 באפריל. 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 היה 95.33% (ירידה מ-94.44%). 653 בדיקות עברו בהצלחה, 8 יותר מאשר בגרסה הקודמת (645). 22 בדיקות נכשלו (ירידה מ-29), ו-15 בדיקות דילגו (ירידה מ-15).
  • מנוע אבחון חדש המבוסס על ספריית ariadne שולב. הוא מציג דוחות שגיאה חזותיים בעת הפעלת כלי עזר בטרמינל, תוך הדגשת הארגומנטים משורת הפקודה שגרמו לבעיה. הצגת שגיאות מופעלת בכלי העזר הבאים: 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, ו-du. משתנה הסביבה UUTILS_DIAG מוצע להשבתת דוחות אבחון.
  • אופטימיזציה מונחית פרופילים (PGO) מופעלת במהלך בניית גרסאות, ויוצרת קוד אופטימלי יותר המבוסס על ניתוח של התנהגות ביצוע התוכנית. מפתחים מעריכים שיפורי ביצועים של עד 31% עבור פעולות מסוימות.
  • אופטימיזציות ביצועים יושמו עבור כלי השירות cp (+32.93%), join (מהיר פי 2.5 מ-GNU על ידי השבתת השוואות מקומיות מיותרות), od, ptx (+4%), nl, tail, expand, unexpand, numfmt ו-sort. מצבים עם פעולות שהיו איטיות באופן ניכר מאשר ב-GNU Coreutils נחשבים כעת לבאגים.
  • תוקנו מספר פערים עם כלי ה-Coreutils של GNU בהתנהגות כלי העזר pr, numfmt, join, id, mkdir, fold, sort, stat, od ו-date.
  • יישמו אפשרויות ספציפיות ל-GNU Coreutils: "uname -A", "uname --all-labeled", "cut -F", "cut --whitespace-delimited", "pr --columns", "pr --join-lines", "pr -f".
  • כלי השירות mv, cp, rm, chmod ו-stdbuf חוזקו כדי למנוע פגיעויות הנגרמות על ידי תנאי מרוץ, אשר עלולות לאפשר שינוי נתונים לאחר אימות המידע אך לפני ביצוע פעולה. לדוגמה, קובץ יכול להיות מוחלף בקישור סמלי בין השלמת האימות לתחילת הפעולה. בעת שימוש בכלי השירות cp, chmod ו-mv בסקריפטים של מערכת הפועלים עם הרשאות root, פגיעויות כאלה עלולות לאפשר העתקה או החלפה של קבצים שרירותיים.
  • בוצעה עבודה כדי למנוע קריסות בכלי העזר split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac ו-who.
  • גרסאות מיושמות של כלי השירות kill ו-uptime עבור Windows.
  • הוצאו משימוש החבילות byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (נפרץ לאחרונה), exacl ו-dns-lookup לטובת פונקציות מספריות std, rustix ו-windows-sys.
  • כלי העזר ls ו-comm תומכים כעת במאפיין המיקום "collation", המאפשר ביצוע השוואות תוך התחשבות במשמעות התווים (לדוגמה, ניתן להתעלם מסימני הטעמה במהלך ההשוואה).
  • טיפול משופר בתווים מרובי בייט בכלי העזר nl ו-cut.

בנוסף, קנוניקל פרסמה שתי תמונות קונטיינרים ניסיוניות לפיתוח Rust, התואמות את מפרט Dev Container. התמונה הראשונה כוללת את Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (מפרש לגילוי התנהגות לא מוגדרת), cargo-auditable (ביקורת בנייה), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh ו-curl. התמונה השנייה כוללת גם חבילות פיתוח. Ubuntuחבילת git-build, sbuild, ubuntuכלי פיתוח -dev, סקריפטי פיתוח, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster