Cose di cui si potrebbe fare a meno: Microsoft pubblica Coreutils for Windows!

Nell’ambito della conferenza annuale Build, dedicata agli sviluppatori Windows, Microsoft ha fatto un annuncio per certi versi sorprendente, dichiarando disponibile il primo rilascio di Coreutils for Windows.

Se il nome vi suona familiare, è del tutto normale, infatti si tratta di una suite di utility di sistema che gli utilizzatori di Linux conoscono da sempre, e che in tempi recenti ha visto la migrazione dalla base di codice originale, scritta in C, alla versione scritta in Rust, che è già parte di Ubuntu 26.04 LTS.

Evidentemente questi comandi piacciono tanto anche a Microsoft, tanto da volerne fare il loro porting nel mondo Windows, utilizzando sempre il linguaggio Rust.

Per installare i comandi nel proprio sistema è sufficiente utilizzare WinGet:

winget install Microsoft.Coreutils

Il requirement principale è quello di avere una versione di PowerShell superiore o uguale alla 7.4.

Ma quali e quanti sono i comandi di sistema disponibili e, soprattutto, funzionano tutti?

Per rispondere a questa domanda riportiamo la tabella presente nella pagina GitHub del progetto, la cui legenda delle icone è ✅ ships and works · ⚠️ ships but conflicts with a built-in · 🛑 not shipped:

CommandCMDPowerShell 7.4+Notes
cat⚠️
cp⚠️
date⚠️⚠️
dir🛑🛑Conflicts with the built-in DOS command
echo⚠️⚠️
expand🛑🛑Conflicts with the built-in DOS command
findIntegrated port of the original DOS command
hostnameSuperset of the Windows built-in
kill🛑🛑Unavailable due to lack of signals on Windows; Implementing a form of SIGTERM/SIGKILL may be possible in the future however
ls⚠️
mkdir⚠️⚠️
more🛑🛑Conflicts with the built-in DOS command (consider edit as an alternative)
mv⚠️
pwd⚠️
rm⚠️
rmdir⚠️⚠️
sleep⚠️
sort⚠️Integrated port of the original DOS command
tee⚠️
timeout🛑🛑Relies on kill‘s functionality
uptime⚠️
whoami🛑🛑Conflicts with the built-in Windows command

Quindi, come è facile notare, comandi come kill, che sono basati sui segnali POSIX, non sono ovviamente disponibili (almeno per il momento, stando ai commenti inseriti nella tabella).

A proposito di come i vari tool sono integrati c’è un aspetto interessante da notare, come spiega questo articolo di Bleeping Computer: è uno solo l’eseguibile che viene installato nel sistema, ossia c:\Program Files\coreutils\coreutils.exe, gli altri sono tutti hardlink. Quando un utente lancia uno di questi comandi, Windows carica coreutils.exe, che determina quale utility eseguire in base al nome del comando che è stato eseguito.

Una sorta di parser quindi, che varia il comportamento in base all’invocazione.

Tra l’altro, a dispetto della tabella di cui sopra, è interessante notare come il numero di hardlink sia ben più ampio di quello riportato, vedi immagine allegata all’articolo:

Coreutils using NTFS hardlinks to map commands to binary

Altro aspetto importante, se ve lo state chiedendo, è quello relativo ai sorgenti, che sono pubblicati con licenza MIT, quindi più open-source di così non si può.

Rimane infine la domanda principale a cui, se volete, potete cercare di dare una risposta nei commenti: tutto bello, bellissimo, la licenza MIT poi, straordinaria, solo… Perché?

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

2 risposte a “Cose di cui si potrebbe fare a meno: Microsoft pubblica Coreutils for Windows!”

  1. Avatar Massimo Luciani

    La mia impressione è di un'operazione di facciata per cercare di accattivarsi le simpatie di qualche utente Linux.

  2. Avatar Luca Moscato
    Luca Moscato

    Faccio per un attimo la voce fuori dal coro. A causa di cambiamenti aziendali sono stato praticamente costretto a passare a windows, dopo un giorno a cercare di capire come implementare il comando ssh sono riuscito a realizzare un'esperienza di linea di comando (solo per ssh eh) simile a quella che avevo su ubuntu. La combo win terminal + powershell 7 + ssh client e agent di win e un buon file config (grazie Claude) mi hanno permesso un'esperienza simile a quella che avevo prima; i vari cygwin, mobaxterm non mi fanno impazzire. Ho anche un agent funzionante ssh-add quindi non devo inserire la password della chiave ogni volta. Ora, avere qualche comando in più simile a quelli che avevo prima e simili a quelli che poi andrò a trovare sui server ai quali mi collego dal mio punto di vista non è male … ma ripeto essere una mia condizione soggettiva.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *