
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:
| Command | CMD | PowerShell 7.4+ | Notes |
|---|---|---|---|
cat | ✅ | ⚠️ | |
cp | ✅ | ⚠️ | |
date | ⚠️ | ⚠️ | |
dir | 🛑 | 🛑 | Conflicts with the built-in DOS command |
echo | ⚠️ | ⚠️ | |
expand | 🛑 | 🛑 | Conflicts with the built-in DOS command |
find | ✅ | ✅ | Integrated port of the original DOS command |
hostname | ✅ | ✅ | Superset 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:

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.




















Lascia un commento