Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_meta is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_previous_publish_date is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_notification_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Microsoft porta Coreutils Rust Linux su Windows con un progetto dedicato

Microsoft porta Coreutils Rust Linux su Windows con un progetto dedicato

Microsoft Coreutils for Windows nasce da uutils in Rust e porta comandi Unix nativi su Windows. Il nodo vero riguarda compatibilità, conflitti con PowerShell e licenza MIT.

Microsoft porta su Windows le utilità coreutils scritte in Rust per Unix/Linux (uutils): una scelta tecnica utile che però riapre la questione sul rapporto tra licenze permissive, fork aziendali e compatibilità con GNU coreutils. Microsoft Coreutils for Windows (repository GitHub) si presenta come una raccolta di comandi in stile Unix che gira nativamente su Windows: il progetto, derivato dalle Rust coreutils, mette a disposizione un multi-call binary, ovvero un unico eseguibile che espone comandi come cat.exe, grep.exe, find.exe, ls.exe, cp.exe e rm.exe.

L’obiettivo consiste nel ridurre le differenze tra Linux, macOS, WSL (Windows Subsystem for Linux), container e Windows. Chi scrive script shell sa bene quanto basti una piccola variazione nel comportamento di sort, find o grep per rompere una procedura: Microsoft prova quindi a offrire strumenti familiari senza obbligare l’utente ad aprire WSL.

uutils/coreutils usa la licenza MIT, mentre GNU coreutils resta sotto GPLv3 o successiva. In pratica, Microsoft può creare una build propria, distribuire modifiche e anche mantenere codice non pubblicato in futuro, purché conservi gli avvisi di copyright e licenza relativi al codice MIT originario. Non può rendere proprietario il codice già rilasciato da uutils, ma può chiudere modifiche successive scritte internamente.

Microsoft Coreutils non è GNU coreutils: la differenza conta

Come osservato in precedenza, non siamo davanti a un fork di GNU coreutils, il pacchetto storico del progetto GNU che include comandi fondamentali come cp, mv, rm, chmod, chown, date, wc, sort, uniq e molti altri. Nasce nel solco Unix e ha avuto un ruolo centrale nelle distribuzioni Linux.

uutils è un progetto separato: riscrive i comportamenti di GNU coreutils in Rust, punta alla compatibilità e considera le differenze rispetto a GNU come bug.

La documentazione del progetto segnala che tutti i programmi risultano implementati, ma alcune opzioni possono mancare o comportarsi in modo diverso. Qui si vede il limite tecnico più delicato: replicare un comando storico non significa solo riprodurre le opzioni più note, ma porsi sullo stesso identico solco fatto di anni di casi limite, error code, messaggi su stderr, percorsi non UTF-8, symlink, permessi e comportamento su filesystem differenti.

Microsoft sembra interessata a costruire una variante dei comandi storici Unix/Linux per Windows, con patch mirate al sistema operativo e un pacchetto pensato per WinGet. La documentazione ufficiale indica infatti l’installazione con winget install Microsoft.Coreutils presentando il progetto come anteprima.

Perché Microsoft punta sulle utilità Unix

Negli ultimi anni Windows ha progressivamente avvicinato il proprio ecosistema a quello Linux. L’introduzione di Windows Subsystem for Linux, il supporto ai container Docker, la crescente diffusione di Git e l’utilizzo sempre più frequente di ambienti cloud hanno modificato profondamente il profilo dell’utente professionale.

Molti sviluppatori trascorrono quotidianamente parte del proprio lavoro su terminali Linux e Windows: la necessità di ricordare sintassi differenti o mantenere versioni separate degli script rappresenta un ostacolo alla produttività. La disponibilità nativa di strumenti come quelli citati in precedenza contribuisce a rendere l’esperienza più uniforme e prevedibile.

Le inevitabili collisioni con i comandi storici di Windows

L’integrazione delle utilità Unix non è però priva di complicazioni: Windows possiede infatti una lunga storia di comandi integrati sia nel Prompt dei comandi (cmd) sia in PowerShell: molti nomi coincidono con quelli utilizzati nel mondo Unix/Linux.

La situazione è particolarmente evidente in PowerShell, dove il sistema utilizza una complessa gerarchia di alias e cmdlet che può intercettare l’esecuzione prima ancora che venga raggiunto l’eseguibile desiderato. Per questo motivo Microsoft richiede espressamente PowerShell 7.4 o versioni successive.

Alcuni strumenti, inoltre, non sono distribuiti affatto per evitare incompatibilità potenzialmente pericolose con l’ambiente Windows. Tra questi figurano dir, more, whoami, paste, expand. La loro presenza potrebbe infatti alterare il comportamento di script esistenti o creare ambiguità difficili da gestire.

Conclusione: una mossa utile, non neutra

Microsoft Coreutils non distrugge uutils e non minaccia GNU coreutils nel breve periodo. Offre però un segnale chiaro: Windows vuole assorbire sempre più strumenti familiari agli sviluppatori Unix-like, senza costringerli a uscire dal loro ambiente nativo.

Dal punto di vista tecnico, l’operazione ha senso: Rust offre buone basi per strumenti sicuri e portabili, uutils ha già una copertura ampia e Windows ha bisogno di una compatibilità shell meno frammentata. Dal punto di vista dell’open source, il tema resta aperto: la licenza MIT permette collaborazione, ma non la impone.

La verifica decisiva arriverà dai fatti: patch Windows pubblicate, contributi accettati da uutils, bug corretti a monte e documentazione onesta sui limiti. Fino ad allora conviene evitare sia l’entusiasmo ingenuo sia eventuali toni allarmistici. È una build Microsoft di strumenti Unix-like per Windows; utile, interessante e politicamente davvero rilevante.

Ti consigliamo anche

Link copiato negli appunti