Uno dice: “viviamo insieme” quando vuol dire che le cose non vanno.

Infatti poi, quando peggiorano, dice: “perché non ci sposiamo?”

(M. Troisi, Pensavo fosse amore invece era un calesse, 1991)

Microsoft ama Linux. Almeno così dice, da qualche anno a questa parte, cioè da quando Satya Nadella ha preso il posto di Steve Ballmer al timone dell’azieda. Alle dichiarazioni d’amore hanno fatto seguito anche alcune manifestazioni d’affetto: a primavera Windows apriva timidamente casa al “pinguino” al grido (esagerato nei toni e nella sostanza) di “Ubuntu su Windows”; questa estate gli ha regalato una shell. Anzi, una PowerShell.

Per i nostri lettori non necessariamente esperti, con la nostra solita brutale semplificazione diciamo che una shell (dovremmo chiamarla “shell testuale”) è genericamente un’interfaccia tra uomo e computer, caratterizzata dal fatto che l’uomo impartisce i comandi al computer scrivendoli con la tastiera. Quelli con i capelli bianchi, che hanno conosciuto MS-DOS, lo sanno bene, dato che la shell (testuale), che lì si chiamava command.com, era l’unica interfaccia possibile, dato che il mouse non era stato ancora inventato.

PowerShell è dunque una shell che permette di inviare comandi a Linux (che in realtà ne ha già molte di sue: si chiamano bash, sh, zsh…), e quindi di eseguire anche script (cioè serie di comandi contenute in file di testo) originariamente scritti per essere eseguiti su sistemi Windows.

Molti hanno salutato con favore questa notizia, altri meno. Tra questi ultimi Andrea Colangelo, sviluppatore, sostenitore del Software Libero, Ubuntu Developer e Debian Developer, in un recente tweet ha definito PowerShell “inutile”. Per questo, e per la sua competenza in materia, gli abbiamo fatto qualche domanda.

Prima di tutto, raccontaci un po’ chi sei e cosa fai.

Sono un Ingegnere del Software e un programmatore, fiero sostenitore del Software Libero e del suo utilizzo e, quando ho un po’ di tempo collaboro allo sviluppo di importanti progetti software liberi come Ubuntu e Debian, di cui sono membro ufficiale. Nel mondo reale lavoro come CTO presso Openforce, un’azienda che fornisce soluzioni basate su software libero per diverse PMI. Nel resto del tempo libero mi diverto ad ascoltare musica jazz, cucinare cose su cui applico personalmente una rigorosa Quality Assurance e guardare partite di rugby.

Perché dici che PowerShell su Linux è inutile?

Ma ti pare che il Sistema Operativo famoso perché si fa tutto da terminale ha bisogno del terminale del Sistema Operativo dove si fa tutto col mouse? Scherzi a parte, su Linux oggi l’utente domestico non ha pressoché mai bisogno di usare una shell, ed uno sviluppatore abituato alla estrema potenza e flessibilità di una shell come Bash (e simili, tipo Dash, Zsh, e così via) certo non si sogna nemmeno di passare ad un tool come PowerShell. Credo che l’unico senso di PowerShell per Linux (e anche per MacOS) possa essere quello di riciclare script già realizzati per Windows senza troppo sbattimento, e poco più.

Se è inutile, secondo te perché l’hanno portato su Linux?

Servirebbe molto spazio per rispondere approfonditamente a questa domanda. Cercando di stringere al minimo, credo che la risposta vada cercata nella strategia complessiva che Microsoft sta ridisegnando da quando Nadella è al timone di Redmond. Ti dico come la vedo io: nel settore mobile Windows Mobile ha un grande futuro alle sue spalle, e il settore desktop sta perdendo di importanza (anche se meno velocemente di quanto si pensi). Ma il settore del cloud computing, segnatamente dei servizi IaaS, è una prateria dove tutti i grandi player stanno trovando ampissimi spazi di profittabilità: Amazon prima di tutti, ma anche Google, HP, IBM, per citarne alcuni, e ovviamente anche Microsoft. Qui Microsoft è sostanzialmente l’unica tra queste aziende a trovarsi in una posizione di bizzarra ambiguità: da un lato affitta server su cui installa il proprio sistema operativo, dall’altro affitta server su cui installa il principale sistema operativo concorrente (nelle sue varie incarnazioni). Quello che mi pare Nadella stia cercando di fare è integrare, oserei dire “assorbire” Linux all’interno della sua piattaforma, in modo da ottenere il duplice scopo di favorire il travaso di utenti Linux verso Windows, portando su Linux software storicamente disponibili solo su Microsoft (come ad esempio SQL Server, la piattaforma .NET ed estensioni di Visual Studio per sviluppare software per Linux), e al contempo fornire comunque un supporto di qualità per chi ha bisogno di un server Linux. Non è un caso infatti, che l’annuncio della disponibilità di PowerShell sia arrivato dal blog di Azure, e non è un caso che questa strategia si stia limitando solo all’ambito di stretto interesse per sistemisti e programmatori. Perché sul desktop la storia è ben altra.

A cosa ti riferisci?

Beh, quando si parla di desktop lo scontro mi pare che sia su un livello ben diverso. Microsoft amerà anche Linux, ma negli ultimi tempi gli sforzi per ostacolarne la diffusione in ambito desktop si sono fatti sempre più feroci, in qualche caso arrivando perfino a delle punte di vere concorrenza sleale. Butto lì un po’ di argomenti caldi, in ordine sparso: Windows 10 che ha fatto brutti scherzetti in giro, il dente ancora avvelenato per lo switch di Monaco a Linux e relativo FUD generosamente sparso, alla discutibilissima vicenda del Secure Boot, al modo brutale con cui Windows brasa l’MBR occupato da altri bootloader durante le procedure di installazione, aggiornamento e non solo.

Raccontami qualcosa sul Secure Boot, di cui parli già in questo video del 2012: cosa c’entra Microsoft e perché dici che ha ostacolato la diffusione di Linux su desktop?

La storia del Secure Boot è una mia vecchia passione, sia per ragioni tecniche che pratiche e “politiche”, per così dire. Il Secure Boot nasce per un nobile scopo, ovvero proteggere l’avvio del computer da una vulnerabilità che è particolarmente pericolose ma anche estremamente difficile da sfruttare. Tanto difficile che probabilmente nessuna macchina ne è stata mai colpita, ma tant’è, bene che si sia voluto mettere una pezza. Il problema sono le modalità con le quali questa specifica è stata implementata, e tutta la serie di decisioni (e sopratutto di non-decisioni) che sono state prese in fase di definizione delle specifiche tecniche.

Il video che hai citato è ormai un po’ obsoleto, ma è ancora interessante da un punto di vista storico e per capire a fondo i retroscena della questione. Microsoft è stata estremamente abile nello sfruttare a proprio vantaggio i loophole che le specifiche tecniche UEFI hanno lasciato aperti. Non voglio arrivare a dire che abbia inteso usare UEFI come un grimaldello per scardinare definitivamente quel minimo di resistenza che incontra nel settore desktop, ma sicuramente il Secure Boot è stato, almeno per qualche tempo, un potenziale ostacolo alla diffusione di sistemi operativi diversi da Windows. La buona notizia è che oggi pressoché qualsiasi distribuzione Linux funziona senza problema anche con UEFI (e Secure Boot attivo).

Dall’altro canto, è ironico (eufemismo) che proprio Microsoft abbia reso Secure Boot ragionevolmente inutile almeno su alcune piattaforme e in alcune condizioni, come mostrano le recenti notizie al riguardo.

Dunque PowerShell, a detta di Andrea Colangelo, è un regalo inutile che Microsoft ha fatto a Linux. Ma d’altronde è il pensiero che conta, no?!