4.2. Kernel di sistema operativo

Come abbiamo ricordato nell'introduzione, un elemento base di un computer di uso comune che sia utilizzabile, è il kernel. Tra i più conosciuti oggi fra i kernel liberi, c'è Linux, creato da Linus Torvalds e rilasciato per la prima volta nel 1991. Linux è una cosa straordinaria nel vero senso della parola; si può trovare il messaggio su USENET di Linus del 5 ottobre 1991 su Google Groups 20 Year Usenet Timeline. Un altro eccellente sito, ComputerHope, mantiene una trascrizione di Linus che dice: "Saluti a tutti quelli là fuori che utilizzano minix; sto facendo un sistema operativo (libero), (solo un hobby, non sarà grande e professionale come gnu) per cloni AT 386(486)."

Oggigiorno, molte (o tutte) le raccolte di software libero fornite a pagamento da varie compagnie sono comunemente chiamate distribuzioni Linux. Come implicitamente dice il nome, naturalmente, esse contengono il kernel Linux, ma ciò è solo un piccolissimo pezzo della raccolta completa. In aggiunta al kernel, quanto fornito contiene un mucchio di pacchetti di Software Libero che è stato "adattato" e compilato per la propria piattaforma ed è stato preconfigurato per lavorare bene insieme agli altri pacchetti nella "raccolta".

Una varietà e libertà di scelta sono sempre esistite nell'arena delle applicazioni di software libero. Per esempio, se c'erano 10 lettori di musica utilizzabili (non ugualmente popolari, solo utilizzabili) o server web esistenti, probabilmente li avremmo trovati tutti già pacchettizzati e in attesa dell'installazione nel proprio archivio dei pacchetti Debian (e probabilmente anche nella maggior parte delle distribuzioni Linux). Tuttavia i kernel hanno una storia completamente differente. Oggi Linux è di gran lunga il più popolare kernel di software libero. Altri kernel (tipo FreeBSD o NetBSD) si stanno facendo avanti, ma hanno vita propria e sono basati su una licenza differente, non la GNU GPL.

Adesso si può comprendere perché persone autorevoli insistano nel chiamare le distribuzioni GNU/Linux invece che solo Linux. "Linux" identifica il "gusto" del kernel (dato che adesso sappiamo che ce ne sono molti, non solo Linux) e "GNU" identifica il cosiddetto ambiente utente (insieme di software utente e di sistema, per lo più la parte cruciale per rendere ogni Unix utilizzabile). Il kernel è solo una minima parte, quello che abitualmente si sente quando si utilizza il sistema è lo "spirito" dell'ambiente utente, il comportamento di comandi e strumenti di base. Omettere "GNU" dal nome è un comportamento ignorante; GNU/Linux dovrebbe essere chiamato GNU/Linux, almeno quando lo si scrive.

Io spero che voi comprenderete che molte delle cose che si apprezzeranno in "Linux" saranno di fatto caratteristiche Unix standard e vecchie di decenni che non hanno nulla a che vedere con il kernel Linux stesso.

Adesso, coerentemente con il titolo della sezione e con questa introduzione, possiamo arrivare all'attesa conclusione: siccome Debian aspira a diventare un Sistema Operativo universale, offre la scelta dei kernel!

Sì, ciò è giusto! Accanto alla più largamente conosciuta Debian/GNU Linux, ci sono disponibili anche FreeBSD, NetBSD e The Hurd. Lo stesso microkernel The Hurd, (si visiti The Hurd Wiki) è ancora in sviluppo e non pronto per l'uso in produzione, ma NetBSD e FreeBSD sono kernel maturi e l'usabilità dei loro port Debian dovrebbe aumentare rapidamente. (Attualmente il problema principale con kernel *BSD e Debian è rendere i kernel funzionanti con l'ambiente utente GNU invece di quello BSD atteso.) Per la cronaca, i kernel della serie 2.6 sembrano sbaragliare la cavalleria nemica in termini di prestazioni in quasi ogni test realizzato (almeno secondo Gregory McGarry e Felix von Leitner), ma il popolo BSD sta tirando fuori idee non meno brillanti e caratteristiche di valide.

In pratica, questo significa che sarà possibile scegliere qualsiasi piattaforma hardware (tipo di macchina e architettura) e uno qualsiasi dei kernel supportati che corrisponde meglio alle proprie esatte necessità, mentre dalla prospettiva dell'utilizzatore sarà sempre Debian senza visibili ed incompatibili differenze!