W Ubuntu 25.10 GNU Coreutils zostanie zastąpione przez uutils napisane w języku Rust

dou.eu 13 godzin temu

Jon Seager, wiceprezes Canonical ds. inżynierii i lider techniczny projektu Ubuntu, ogłosił inicjatywę polegającą na zastąpieniu domyślnych narzędzi systemowych w Ubuntu odpowiednikami napisanymi w języku Rust. Pierwszym celem tej inicjatywy jest domyślne wdrożenie zestawu narzędzi uutils w Ubuntu 25.10, zastępującego dotychczasowe GNU Coreutils. jeżeli eksperyment zakończy się sukcesem, uutils zostaną również wdrożone jako domyślne narzędzia w wersji LTS Ubuntu 26.04.

Zmiana obejmie ponad sto narzędzi wchodzących w skład Coreutils, w tym sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln oraz ls. Aktualnie narzędzia uutils są już domyślnie stosowane w dystrybucji Apertis opartej na Debianie, a także w niezależnej dystrybucji AerynOS (SerpentOS). Wydany w ubiegłym tygodniu pakiet uutils coreutils 0.0.30 przeszedł pomyślnie 507 testów z referencyjnego zestawu testowego GNU Coreutils (w poprzednim wydaniu było to 506 testów, a dwa wydania wcześniej 476). 69 testów zakończyło się niepowodzeniem, a 41 zostało pominiętych. W nadchodzących tygodniach planowane jest także rozpoczęcie prac nad zastąpieniem w Ubuntu narzędzi su oraz sudo pakietem sudo-rs. Rozważane są również projekty takie jak zlib-rs i ntpd-rs.

Głównym powodem migracji jest chęć zwiększenia bezpieczeństwa i niezawodności narzędzi systemowych, stanowiących podstawę działania dystrybucji. Wykorzystanie języka Rust pozwoli ograniczyć ryzyko błędów związanych z zarządzaniem pamięcią, takich jak odwołanie do pamięci po jej zwolnieniu czy przekroczenie granic bufora. Według Jona Seagera ochrona przed tego typu błędami znacznie zwiększy bezpieczeństwo oraz ogólną stabilność działania całego systemu.

Canonical bada różne sposoby podnoszenia jakości oprogramowania, a jednym z nich jest dostarczanie aplikacji tworzonych z myślą o bezpieczeństwie, niezawodności i poprawności od samego początku. Dla kluczowych komponentów dystrybucji jest to szczególnie istotne, ponieważ problemy w oprogramowaniu niskiego poziomu wpływają na wszystkie wyższe warstwy systemu. Na przykład problemy z wydajnością podstawowych pakietów mogą odbić się na wydajności pozostałych podsystemów.

Aby przetestować wymianę komponentów systemowych w Ubuntu, powstał projekt oxidizr, oferujący narzędzia wiersza poleceń do zarządzania eksperymentami związanymi z zastępowaniem tradycyjnych narzędzi alternatywami napisanymi w Rust. Aktualnie oxidizr umożliwia eksperymentalne wdrożenie pakietów uutils coreutils, uutils findutils, uutils diffutils oraz sudo-rs. Na przykład, aby zamienić coreutils i findutils w swojej instalacji, wystarczy wykonać polecenie:

[object HTMLPreElement]

Aby przywrócić poprzedni stan systemu, można użyć polecenia:

[object HTMLPreElement]
Idź do oryginalnego materiału