Intervista a Linus Torvalds
Alcuni anni fa Linus Torvalds, principale autore del kernel Linux, aveva accettato una nostra intervista. I temi discussi sono tutt’ora rilevanti e sempre interessanti per gli appassionati del software libero e open source, quindi abbiamo deciso di ripubblicarla online.
Era il 25 agosto 1991 quando Linus Torvalds comunicò di aver cominciato a lavorare su un sistema operativo open source: il sistema era basato sui programmi del progetto GNU e su un kernel di sua concezione chiamato Linux (il nome originale doveva essere Freax, ma il suo amico Ari Lemmke chiamò “linux” la cartella che conteneva il codice sul server FTP). Finalmente, il progetto GNU aveva un kernel a disposizione, e quindi il primo sistema operativo FOSS era pronto (anche se ancora non stabile). Linux stesso era nato da un controversia di Torvalds con il professor Tanebaum, docente della sua università, che aveva realizzato il kernel Minix. Questo aveva, secondo il padre di Linux, due fondamentali pecche: la prima è di essere realizzato con una struttura a microkernel (molto più complicato di un kernel monolitico), e di non essere liberamente modificabile. Il tempo ha dato ragione a Linus Torvalds: infatti Minix non ha avuto successo, a differenza di Linux, perché non era veramente open source, ed anche perché non solo Minix ma anche Hurd (entrambe microkernel) sono risultati troppo complessi per poter essere realmente funzionali.
Oggi Linus Torvalds è uno dei personaggi più influenti del mondo del Free Open Source Software, assieme a Richard Stallman (l’ideatore del progetto GNU e padre della filosofia free software). A differenza di Stallman, però, il padre del pinguino ha sempre mantenuto un profilo di basso livello, cercando di farsi trascinare il meno possibile nelle varie dispute della comunità. In questa intervista Torvalds ci rivela il suo pensiero e scopriamo che, forse, il principale motivo per cui riesce a rimanere super partes è l’essere estremamente razionale, capace quindi di mettere da parte i moralismi in favore di ciò che, semplicemente, funziona. Possiamo dire che se Stallman è il pastore spirituale della comunità FOSS, sempre pronto a tirare le orecchie a chi non segue le tavole dei comandamenti, Torvalds è un regista che dirige il film che la comunità sta realizzando.
LM – Ciao Linus, tutti noi sappiamo che sei il creatore del kernel Linux e di Git. Però sappiamo poco della tua vita personale. Puoi dirci qualcosa al riguardo?
Linus Torvalds – Non so da dove cominciare… ho avuto a che fare con i computer sin dall’inizio della mia adolescenza: mio nonno (da parte di mia madre) era professore di statistica all’università di Helsinki, ed aveva uno dei primi computer per uso domestico (un Commodore VIC-20) che portava a casa per fare dei calcoli, a volte, quando avevo 11 o 12 anni. Io lo aiutavo a scrivere alcuni dei programmi (senza capire nulla della matematica che c’era dietro), e poi sono finito a scrivere giochi ed altri programmi presi da riviste d’informatica e manuali dell’epoca. Ed in certi casi scrivendo i miei stessi programmi.
I computer sono ancora il mio hobby, oltre che il mio lavoro. Al di là di quello, io leggo molto (ma per la maggior parte cose che si possono dimenticare senza problemi, come fantascienza e fantasy) e faccio scuba diving (immersioni subacquee – n.d.r.) ogni volta che posso.
Vivo a Portland, Oregon, in questi giorni (sono nato e cresciuto a Helsinki, Finlandia), sono sposato ed ho tre figlie adolescenti. E… no, nessuna di loro è molto interessata ai computer, se non come utente.
LM – Tu hai detto “Il software è come il sesso: è meglio quando è libero e gratuito”. Quindi qual’è la tua idea di software libero ed open source, ed in che modo questa è differente dall’idea di Richard Stallman?
Eh. Io non uso nemmeno più il termine “free software”, perché penso che sia un punto di partenza sbagliato.
Sia per l’ambiguità presente in lingua inglese tra “free” inteso come “libero” e “free” come “gratuito”, sia perché anche quando capisci la differenza dei due significati (che poi non è così difficile da comprendere) la parola “free” è talmente piena di carico emotivo (soprattutto negli Stati Uniti, “Land of the Free, rah, rah, USA USA USA!”) che chiunque la fa significare qualsiasi cosa voglia. Richard Stallman, in particolare, vuole definirla in un modo molto specifico ed usarla per un discorso sulla morale.
Io penso che la morale sia qualcosa di privato, e chiunque la utilizzi per fare una discussione qualunque stia sbagliando. Io posso avere le mie personali ragioni per preferire l’open source, ma sono le mie motivazioni personali, e non hanno nulla a che vedere con i motivi per i quali suggerisco agli altri di adottare l’open source.
Quindi io (ed anche altre persone) uso il termine “open source software”, e non mi disturbo a fare alcun stupido ragionamento moralistico. L’open source tende a essere semplicemente migliore dal punto vista tecnico, ed è molto più divertente partecipare al processo creativo quando questo è “open” e tutti possono collaborare. Open source significa che non c’è una singola entità che controlla, e nessuno può nascondere quello che sta facendo. Significa anche che le persone e le aziende possono competere a livelli differenti oltre al semplice software. E mi sembra interessante notare come delle persone si siano messe insieme per rendere Linux stesso migliore, ma poi altre persone prendono il risultato e lo utilizzano per fare delle altre cose interessanti che non hanno nulla a che vedere con Linux di per se, se non il fatto che avevano bisogno di un sistema operativo.
Quindi l’open source è un’ottima strada per i tecnici, affinchè possano lavorare insieme senza dover essere legati a un particolare ambito o a una azienda. Questo lo rende molto più interessante. Ma fornisce la possibilità di fare comunque cose interessanti, anche se il tuo obiettivo primario non è il software open source stesso.
LM – Che cosa ne pensi del progetto GNU HURD? Bisogna dire che HURD viene sviluppato dal 1990 e non è ancora stabile. Forse questo dimostra che i microkernel sono troppo complessi e il gioco non vale la candela?
Io penso che i microkernels siano fondamentalmente una idea sbagliata, perché pongono la complessità del progetto nel punto sbagliato (la comunicazione tra diverse entità) e ti limitano troppo dal punto di vista tecnico, mettendo da parte quel tipo di condivisione che è invece standard nei sistemi operativi tradizionali. Poi ci sono stati altri problemi con Hurd, e mentre una volta era un progetto interessante penso che ormai non sia più di rilievo da un bel po’ di tempo.
Detto questo, una delle belle cose dell’open source è che non deve necessariamente essere di rilievo: per persone che si divertono semplicemente a giocare con le cose, penso che Hurd possa essere ancora interessante.
LM – Sembra che tu non sia soddisfatto degli ultimi contributi degli sviluppatori al codice di Linux (hai detto che potresti “tornare a imprecare”)…
Questa non è certo una discussione nuova, c’è sempre stata questa tensione tra “persone che pensano sia più bello scrivere nuovo codice” e “hei, dobbiamo sistemare le cose per rilasciare la nuova versione”. Penso che al momento abbiamo trovato il giusto bilanciamento tra i due, ed il nostro ciclo di rilascio di circa 3 mesi, con una finestra di due settimane per il merge di tutti i nuovi contributi, e con poi circa 6-8 settimane per darsi una calmata funzioni piuttosto bene.
Però io finisco ancora per dover ogni tanto ricordare alle persone di darsi una calmata: capita nella maggior parte dei rilasci di una nuova versione, non è una novità, e penso che sia quasi naturale. In alcune versioni di più rispetto a altre, ma è una normale fluttuazione statistica.
LM – Quindi cosa vorresti vedere in un prossimo rilascio del kernel?
Beh, c’è un gran numero di cose su cui le persone stanno lavorando, ma alla fin fine le funzionalità di base del kernel si sono stabilizzate.
Per me personalmente, le modifiche più interessanti stanno nei miglioramenti del core, ma sono spesso molto piccole e difficili da notare: in un progetto che è vecchio più di 20 anni, il codice del core è abbastanza stabile, ed i miglioramenti sono dettagli che non importano a nessuno al di fuori del progetto stesso (a parte il fatto che rendono il kernel più efficiente e rendono più facili altri miglioramenti del codice).
Per quanto riguarda le nuove caratteristiche, la maggior parte di esse riguarda supporto per nuovo hardware. La maggior parte del lavoro fatto nel kernel è per supportare nuovo hardware e nuove architetture. Finchè i “ragazzi dell’hardware” continueranno a produrre versioni nuove e migliorate del loro hardware, noi “ragazzi del sistema operativo” avremo del lavoro da fare. Quindi non avremo mai veramente “finito”.
A volte – ma non così spesso – introduciamo anche nuove interfacce, specialmente con nuovi modelli d’uso (per esempio quando l’hardware diventa talmente piccolo ed economico da poter essere usato in modi completamente nuovi).
LM – Parlando del mondo mobile, al momento Android è il sistema operativo mobile open source più famoso. Vorremmo sapere che cosa pensi del sistema di Google ed anche dei concorrenti (per esempio Mer o Ubuntu Phone).
Ehi, io ero abituato a odiare i telefonini, perché per me erano semplicemente un altro modo per essere infastidito in qualsiasi posto io fossi. Ma con la nascita di Android per me non è più un telefonino, è un dispositivo mobile per leggere le email, ed ora lo porto sempre con me. Quindi io amo Android. E quando altri concorrenti saranno pronti, sarò felice di provarli. Una delle belle cose nell’avere a che fare con Linux è vedere come persone diverse usino Linux in modi che non erano assolutamente nei miei piani originali. Amo vedere nuovi dispositivi come questi.
LM – Sappiamo che hai utilizzato diversi ambienti desktop,passando da KDE a GNOME e poi XFCE. Quindi la domanda è: che cosa cerchi in un DE?
Quello che io cerco, più che altro, è essere lasciato in pace, ed avere la possibilità di adattare il DE in modo che le poche cose di cui ho bisogno siano a posto. Ed io non voglio che questa personalizzazione sia qualcosa su cui devo pensare più di tanto, per questo mi lamento se le poche cose che mi servono sono difficili da fare.
Per esempio, io voglio dei font più piccoli di quanto la gente normalmente desidera, perché sono abituato a avere un sacco di linee di codice (ed email) sullo schermo. Quindi i grandi font (soprattutto in cose “secondarie” come icone e barre del titolo delle finestre) che stanno prendendosi troppo spazio inutilmente, sono qualcosa di cui mi voglio liberare. Voglio che il mio lavoro sia fatto, le mie poche finestre aperte, ed il DE non dovrebbe intralciarmi. “Veloce, pronto, e leggero” è spesso più importante per me di “carino”.
E voglio che quelle poche cose che faccio siano facili da realizzare. Se non posso aprire un nuovo terminale con un singolo click del mouse su una icona che sia sempre visibile, allora c’è qualcosa di strano. Il fatto che io, a volte, abbia addirittura dovuto discutere con qualcuno su questa cosa è un po’ triste.
LM – Tornando al kernel Linux, oggi la maggior parte dei server di internet e dei dispositivi di ridotte dimensioni (dai telefoni ai router e le stampanti…) funzionano grazie a questo kernel. Forse, senza Linux queste tecnologie non esisterebbero nemmeno. Come ci si sente sapendo che miliardi di persone nel mondo utilizzano tecnologie e strumenti basati su un progetto software che tu hai creato?
Non ci penso molto, in realtà, ma penso al fatto che quello che io costruisco è importante per le persone, ed è importante per me.
Perché, certo, a me piace semplicemente programmare e giocherellare con la tecnologia, ma allo stesso tempo non voglio giocare tanto per il piacere di farlo: voglio lavorare su qualcosa che abbia un impatto sul resto del mondo. E quindi il fatto che Linux sia riuscito a avere un grande impatto, è una gran bella sensazione.