Il 25 agosto 1991, dopo cinque mesi di sviluppo, il ventunenne studente Linus Torvalds annunciò in una conferenza telematica comp.os.minix la creazione di un prototipo funzionante di un nuovo sistema operativo Linux, per il quale fu segnato il completamento del porting di bash 1.08 e gcc 1.40. La prima versione pubblica del kernel Linux fu presentata il 17 settembre. Il kernel 0.0.1 aveva una dimensione di 62 KB in forma compressa e conteneva circa 10.000 righe di codice sorgente. L'attuale kernel Linux conta circa 41 milioni di righe di codice.
Il kernel Linux è stato creato sotto l'influenza del sistema operativo MINIX, che non soddisfaceva Linus a causa della sua licenza limitata. Successivamente, quando Linux divenne un progetto noto, i detrattori tentarono di accusare Linus di aver copiato direttamente il codice di alcuni sottosistemi di MINIX. La difesa fu fornita da Andrew Tanenbaum, autore di MINIX, che incaricò uno degli studenti di condurre un confronto dettagliato tra il codice di Minix e le prime versioni pubbliche di Linux. I risultati dello studio mostrarono solo quattro coincidenze insignificanti di blocchi di codice, dovute ai requisiti di POSIX e ANSI C.
Inizialmente, Linus pensava di chiamare il kernel Freax, dalle parole 'free', 'freak' e X (Unix). Ma il nome 'Linux' fu dato al kernel grazie a Ari Lemke, che su richiesta di Linus pubblicò il kernel su un server FTP dell'università, chiamando la directory con l'archivio non 'freax', come richiesto da Torvalds, ma 'linux'. È degno di nota che il commerciante intraprendente William Della Croce riuscì a registrare il marchio Linux e desiderava nel tempo raccogliere diritti d'autore, ma in seguito cambiò idea e trasferì tutti i diritti sul marchio a Linus. La mascotte ufficiale del kernel Linux, il pinguino Tux, fu scelta in seguito a un concorso tenutosi nel 1996. Il nome Tux è un acronimo di Torvalds UniX.
Dinamica di crescita della base di codice (numero di righe di codice sorgente) del kernel:
- 0.0.1 — settembre 1991, 10 mila righe di codice;
- 1.0.0 — marzo 1994, 176 mila righe di codice;
- 1.2.0 — marzo 1995, 311 mila righe di codice;
- 2.0.0 — giugno 1996, 778 mila righe di codice;
- 2.2.0 — gennaio 1999, 1,8 milioni di righe di codice;
- 2.4.0 — gennaio 2001, 3,4 milioni di righe di codice;
- 2.6.0 — dicembre 2003, 5,9 milioni di righe di codice;
- 2.6.28 — dicembre 2008, 10,2 milioni di righe di codice;
- 2.6.35 — agosto 2010, 13,4 milioni di righe di codice;
- 3.0 — agosto 2011, 14,6 milioni di righe di codice;
- 3.5 — luglio 2012, 15,5 milioni di righe di codice;
- 3.10 — luglio 2013, 15,8 milioni di righe di codice;
- 3.16 — agosto 2014, 17,5 milioni di righe di codice;
- 4.1 — giugno 2015, 19,5 milioni di righe di codice;
- 4.7 — luglio 2016, 21,7 milioni di righe di codice;
- 4.12 — luglio 2017, 24,1 milioni di righe di codice;
- 4.18 — agosto 2018, 25,3 milioni di righe di codice;
- 5.2 — luglio 2019, 26,55 milioni di righe di codice;
- 5.8 — agosto 2020, 28,4 milioni di righe di codice;
- 5.13 — giugno 2021, 29,2 milioni di righe di codice;
- 5.19 — agosto 2022, 30,5 milioni di righe di codice;
- 6.4 — giugno 2023, 32,9 milioni di righe di codice.
- 6.10 — luglio 2024, 35,1 milioni di righe di codice.
- 6.16 — luglio 2025, 40,8 milioni di righe di codice.
Progresso dello sviluppo del kernel:
- Linux 0.0.1 — settembre 1991, prima versione pubblica, che supporta solo CPU i386 e si avvia da dischetto;
- Linux 0.12 — gennaio 1992, il codice ha iniziato a essere distribuito sotto licenza GPLv2;
- Linux 0.95 — marzo 1992, è stata garantita la possibilità di eseguire X Window System, realizzata la gestione della memoria virtuale e della swap.
- Linux 0.96-0.99 — 1992-1993, iniziò il lavoro sullo stack di rete. Fu presentato il file system Ext2, aggiunta il supporto per il formato di file ELF, presentati driver per schede audio e controller SCSI, implementato il caricamento di moduli del kernel e del file system /proc.
- Nel 1992 apparvero i primi distribuzioni SLS e Yggdrasil. Nell'estate del 1993 furono fondati i progetti Slackware e Debian.
- Linux 1.0 — marzo 1994, prima release ufficialmente stabile;
- Linux 1.2 — marzo 1995, significativo aumento del numero di driver, supporto per le piattaforme Alpha, MIPS e SPARC, ampliamento delle capacità dello stack di rete, introduzione di un filtro pacchetti, supporto NFS;
- Linux 2.0 — giugno 1996, supporto per sistemi multiprocessore;
- Marzo 1997: fondato LKML, la mailing list degli sviluppatori del kernel Linux;
- 1998: lanciato il primo cluster basato su Linux presente nella lista Top500, composto da 68 nodi con CPU Alpha;
- Linux 2.2 - gennaio 1999, aumentata l'efficienza del sistema di gestione della memoria, aggiunto supporto IPv6, implementato un nuovo firewall, presentato un nuovo sottosistema audio;
- Linux 2.4 — febbraio 2001, supporto per sistemi a 8 processori e 64 GB di RAM, file system Ext3, supporto USB, ACPI;
- Linux 2.6 — dicembre 2003, supporto SELinux, strumenti per la regolazione automatica dei parametri del kernel, sysfs, sistema di gestione della memoria ristrutturato;
- Nel 2005 fu presentato l'hypervisor Xen, che aprì l'era della virtualizzazione;
- Nel settembre 2008 venne rilasciata la prima versione della piattaforma Android, basata sul kernel Linux;
- Nel luglio 2011, dopo 10 anni di sviluppo del ramo 2.6.x, si è effettuato il passaggio alla numerazione 3.x. Il numero di oggetti nel repository Git ha raggiunto 2 milioni;
- Nel 2015 è stata rilasciata la versione del kernel Linux 4.0. Il numero di oggetti Git nel repository ha superato i 4 milioni;
- Ad aprile 2018 è stata superata la soglia di 6 milioni di oggetti Git nel repository del kernel.
- A gennaio 2019 è stato formato il ramo del kernel Linux 5.0. Il repository ha raggiunto il livello di 6,5 milioni di oggetti Git.
- Il kernel 5.8, pubblicato nell'agosto 2020, è diventato il più grande per numero di modifiche di tutti i kernel nella storia del progetto.
- Nel kernel 5.13 è stato registrato un record per il numero di sviluppatori (2150), le cui modifiche sono state incluse nel kernel.
- Nell'agosto 2022 è stato formato il ramo del kernel Linux 6.0, poiché nel ramo 5.x si erano accumulati sufficienti rilasci per cambiare il primo numero nel numero di versione.
- Nel kernel 6.1, rilasciato a dicembre 2022, è stata aggiunta la possibilità di utilizzare il linguaggio Rust come secondo linguaggio per lo sviluppo di driver e moduli del kernel.
- Nel febbraio 2025 è stato raggiunto il traguardo di 40 milioni di righe di codice sorgente.
Circa il 65% di tutte le modifiche al kernel sono state apportate dalle 20 aziende più attive. Ad esempio, nello sviluppo del kernel 6.16, delle modifiche totali, l'11.3% (un anno fa nel kernel 6.10 era il 15.3%) è stato preparato da Intel, il 7.6% (6.9%) da Red Hat, il 6.3% (7.4%) da Google, il 5.6% (6.3%) da Linaro, il 5.4% (4.6%) da AMD, il 3.6% (1.9%) da Qualcomm, il 3.0% (2.5%) da SUSE, il 2.9% (3.2%) da Meta, il 2.6% (3.3%) da Oracle, il 2.4% (2.3%) da Huawei, il 2.4% (1.5%) da NVIDIA, il 2.3% (1.2%) da ARM, il 1.4% (2.4%) da IBM. Il 15.3% (11.9%) delle modifiche è stato preparato da partecipanti indipendenti o sviluppatori che non hanno esplicitamente dichiarato di lavorare per determinate aziende. Per il numero di righe di codice aggiunte nel kernel 6.16, le aziende leader sono state Intel, Red Hat e Google, con quote rispettive del 9.2%, 7.2% e 6.9% (nel kernel 6.10 le quote leader erano Intel, Linaro e Red Hat con rispettive quote del 13.6%, 13.3% e 7.2%).
Fonte: opennet.ru
