
La storia del kernel Linux la conosciamo tutti, almeno a grandi linee. Nato dall’idea di Linus Torvalds, la scrittura del kernel Linux inizialmente prese ispirazione dal sistema operativo Minix, sviluppato da Andrew Tanenbaum per scopi didattici dopo la chiusura del codice di Unix. Tuttavia, non si trattò di un porting di Minix: Torvalds decise di creare un kernel completamente nuovo, annunciando il suo lavoro ad agosto del 1991. La famosa frase che accompagna il progetto:
just a hobby, won’t be big and professional like GNU
giusto un passatempo, che non vuole essere grande e professionale come GNU
che è diventata parte della leggenda che circonda l’origine del kernel Linux.
All’inizio, “Linux” era semplicemente un kernel “nudo e crudo”. Torvalds aveva già portato alcuni componenti essenziali, come bash (una shell) e gcc (un compilatore), ma il tutto richiedeva di essere assemblato manualmente per diventare un sistema operativo utilizzabile.
Nelle prime distribuzioni del kernel Linux, il contributo del progetto GNU era fondamentale per completare il sistema operativo attorno ad esso. Sebbene il kernel Linux fosse il cuore del sistema, molte delle componenti essenziali per il funzionamento di un sistema operativo completo provenivano dal progetto GNU. Queste includevano:
- Shell: Come la bash (Bourne Again SHell), che forniva un’interfaccia a riga di comando per interagire con il sistema.
- Compilatori: Come GCC (GNU Compiler Collection), indispensabile per compilare il software.
- Librerie: Come la glibc (GNU C Library), necessaria per il funzionamento delle applicazioni.
- Utilità di base: Come le Core Utilities (ad esempio
ls
,cp
,mv
), che fornivano strumenti essenziali per la gestione del sistema. - Editor di testo: Come GNU Emacs, utilizzato per modificare file di testo.
Questi strumenti erano cruciali per rendere utilizzabile il kernel Linux, che da solo non poteva costituire un sistema operativo completo. In effetti, molte delle prime distribuzioni contenenti il kernel Linux, come MCC Interim Linux e SLS, includevano già una combinazione del kernel Linux e degli strumenti GNU, motivo per cui è più corretto definire le distribuzioni come “GNU/Linux” per riferirsi al sistema operativo completo.
Oggi, quando parliamo di “Linux”, ci riferiamo frequentemente alle distribuzioni (o “distro”), ovvero raccolte di software che includono nel loro cuore il kernel Linux e sono progettate per adattarsi a diverse esigenze, dall’uso domestico al settore enterprise. Tra le distribuzioni più diffuse troviamo Ubuntu, Debian e Fedora, che soddisfano una vasta gamma di utenti. Red Hat Enterprise Linux e SUSE Linux Enterprise Server rimangono scelte primarie per ambienti aziendali, grazie alla loro stabilità e al supporto professionale. Per gli utenti più esperti o appassionati del minimalismo, distribuzioni come Slackware e Arch Linux offrono un controllo maggiore sulla configurazione del sistema. Knoppix, un tempo pioniera delle distribuzioni Live, è stata fondamentale per lo sviluppo di sistemi utilizzabili direttamente da supporti rimovibili, influenzando molte soluzioni moderne.
Negli ultimi anni, le distribuzioni come GNU/Linux ha visto la nascita di distribuzioni mirate a particolari settori o utilizzi. Ad esempio, Kali Linux si è affermata come riferimento per i test di sicurezza informatica, CentOS Stream ha conquistato utenti interessati alla collaborazione con Red Hat, e Raspberry Pi OS è diventato essenziale per i progetti basati su Raspberry Pi. Questo dimostra la flessibilità del kernel Linux e la creatività della comunità open source.
Alcune distribuzioni hanno poi posto un forte accento sull’accessibilità per gli utenti meno esperti. Linux Mint, Zorin OS e elementary OS, ad esempio, offrono interfacce intuitive che ricordano Windows o macOS, rendendo più facile per i nuovi utenti abbracciare il mondo GNU/Linux.
Le distribuzioni GNU/Linux oggi dominano anche il mondo del cloud computing e dei server. Distribuzioni come Ubuntu Server, Red Hat Enterprise Linux e SUSE sono alla base di molte infrastrutture cloud, grazie alla loro affidabilità e al supporto esteso. Questo ha consolidato la posizione delle distribuzioni GNU/Linux come piattaforma fondamentale per l’enterprise e il computing moderno.
Ma qual è stata la prima distribuzione costruita intorno al kernel Linux?
La primissima “distribuzione” del kernel Linux risale al 1992 ed è stata creata da HJ Lu. Si trattava di 2 floppy disk da 5.25″, uno per eseguire il boot (boot disk) e l’altro per ottenere un prompt dei comandi con accesso al file system (root disk). Era basata sulla versione 0.12 del kernel Linux. Nonostante fosse una soluzione rudimentale, rappresentò un passo fondamentale. Installare un sistema GNU/Linux in quel periodo non era affatto semplice e richiedeva l’uso di un editor esadecimale per modificare il proprio MBR (Master Boot Record), ma il risultato finale permetteva di avere un sistema funzionante.
Sempre nel 1992, Owen Le Blanc del Manchester Computing Centre in Inghilterra sviluppò MCC Interim Linux, considerata da molti come la prima vera distribuzione GNU/Linux. A differenza dei floppy di HJ Lu, MCC Linux offriva un’installazione guidata basata su menu e una selezione di software pronta per essere utilizzata sia dagli utenti che dagli sviluppatori. Anche MCC Linux forniva un ambiente basato su testo TUI (Text-based User Interfaces).
A maggio sempre del 1992, ci fu una svolta significativa: TAMU 1.0A, sviluppata da Aggies con il supporto del Texas A&M Unix & Linux Users Group, fu la prima distribuzione GNU/Linux a includere un sistema grafico X pronto all’uso. Questo rappresentò un grande passo avanti rispetto agli ambienti esclusivamente testuali.
Un’altra distribuzione importante rilasciata nel maggio 1992 fu Softlanding Linux System (SLS), il cui slogan era:
Gentle Touchdowns for DOS Bailouts
Tranquillo approdo per chi fugge dal DOS
SLS rese il mondo GNU/Linux più accessibile agli utenti provenienti dal mondo DOS, semplificando l’installazione e fornendo una base per molti utenti alle prime armi. Tuttavia, ebbe vita breve a causa di alcune scelte progettuali controverse del suo sviluppatore, Peter McDonald. Tra queste scelte, vi fu l’introduzione di un formato proprietario per i file eseguibili, che riguardava la transizione dal formato a.out (all’epoca standard per i file eseguibili su Unix e Linux) al più moderno ELF (Executable and Linkable Format). Sebbene ELF fosse tecnicamente superiore, offrendo vantaggi come il supporto per librerie condivise e il linking dinamico, al momento della sua introduzione non era ampiamente adottato. Questo rendeva gli eseguibili creati su SLS incompatibili con altre distribuzioni GNU/Linux ancora basate su a.out, creando un ecosistema frammentato e causando frustrazione tra gli utenti.
Questa limitazione spinse alcuni sviluppatori a creare distribuzioni alternative basate su SLS, ma con un’attenzione maggiore alla compatibilità e alla stabilità. Nel 1993 nacquero Slackware e Debian, 2 distribuzioni che si impegnarono a mantenere standard aperti e una migliore interoperabilità, guadagnandosi rapidamente popolarità e un impatto duraturo nel mondo GNU/Linux esistendo ancora oggi.
Nonostante introdotto in modo controverso nel 1992 da SLS, il formato ELF (Executable and Linkable Format) iniziò ad essere adottato dalle altre distribuzioni GNU/Linux in breve tempo e si affermò completamente come standard universale per i file eseguibili entro il 1995. Grazie alla sua flessibilità, al supporto per librerie condivise e alla portabilità, ELF sostituì definitivamente il precedente formato a.out, diventando indispensabile nei moderni sistemi operativi basati su Unix/Linux.
Infine, non va dimenticato il contributo della comunità open source: è grazie agli sviluppatori e agli utenti di tutto il mondo che il sistema operativo GNU/Linux è cresciuto fino a diventare il sistema operativo versatile e universale che conosciamo oggi. La comunità continua a innovare e migliorare, garantendo che la piattaforma GNU/Linux rimanga una piattaforma per tutti, dai principianti ai professionisti.
Source: Read More