Il 25 agosto 1991, dopo cinque mesi di sviluppo, il ventunenne Linus Torvalds annunciò in una conferenza telematica su comp.os.minix la creazione di un prototipo funzionante di un nuovo sistema operativo, Linux, per il quale era stato annunciato 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 oltre 35 milioni di righe di codice. Secondo uno studio condotto nel 2010 per conto dell'Unione Europea, il costo approssimativo per sviluppare da zero un progetto simile all'attuale kernel Linux sarebbe superiore a un miliardo di dollari USA (stimato quando il kernel conteneva 13 milioni di righe di codice), secondo altre valutazioni, oltre 3 miliardi.
Il kernel Linux è stato creato sotto l'influenza del sistema operativo MINIX, che non soddisfaceva Linus a causa della sua licenza restrittiva. Successivamente, quando Linux divenne un progetto conosciuto, i detrattori cercarono di accusare Linus di aver copiato direttamente il codice di alcune sottosistemi di MINIX. L'attacco fu respinto da Andrew Tanenbaum, l'autore di MINIX, che incaricò uno dei suoi studenti di eseguire un confronto dettagliato tra il codice di Minix e le prime versioni pubbliche di Linux. I risultati dello studio mostrarono solo quattro coincidenze non sostanziali nei blocchi di codice, dovute ai requisiti di POSIX e ANSI C.
Inizialmente, Linus aveva intenzione di chiamare il kernel Freax, da «free», «freak» e X (Unix). Ma il nome «Linux» è stato dato al kernel grazie a Ari Lemmke, che su richiesta di Linus ha ospitato il kernel su un server FTP dell'università, chiamando la directory con l'archivio non «freax», come richiesto da Torvalds, ma «linux». È interessante notare che l'intraprendente William Della Croce è riuscito a registrare il marchio Linux e voleva raccogliere royalties nel tempo, ma in seguito ha cambiato idea e ha trasferito tutti i diritti sul marchio a Linus. Il mascotte ufficiale del kernel Linux, il pinguino Tux, è stato scelto a seguito di un concorso tenutosi nel 1996. Il nome Tux è un acronimo per Torvalds UniX.
Dinamica di crescita della base di codice (numero di righe di codice sorgente) del kernel:
- 0.0.1 — settembre 1991, 10.000 righe di codice;
- 1.0.0 — marzo 1994, 176.000 righe di codice;
- 1.2.0 — marzo 1995, 311.000 righe di codice;
- 2.0.0 — giugno 1996, 778.000 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.
Progresso nello sviluppo del kernel:
- Linux 0.0.1 — settembre 1991, primo rilascio pubblico, 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 resa possibile l'esecuzione del sistema X Window, implementato il supporto per la memoria virtuale e lo swap.
- Linux 0.96-0.99 — 1992-1993, iniziato il lavoro sullo stack di rete. È stata introdotta la filesystem Ext2, aggiunto 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 filesystem /proc.
- Nel 1992 sono apparsi i primi distribuitivi SLS e Yggdrasil. Nell'estate del 1993 sono stati fondati i progetti Slackware e Debian.
- Linux 1.0 — marzo 1994, primo rilascio ufficialmente stabile;
- Linux 1.2 — marzo 1995, aumento significativo del numero di driver, supporto per le piattaforme Alpha, MIPS e SPARC, espansione delle capacità dello stack di rete, introduzione del filtro a pacchetto, supporto per NFS;
- Linux 2.0 — giugno 1996, supporto per sistemi multiprocessore;
- Marzo 1997: fondata la LKML, mailing list degli sviluppatori del kernel Linux;
- 1998: lanciato il primo cluster basato su Linux, entrato nella lista Top500, composto da 68 nodi con CPU Alpha;
- Linux 2.2 – gennaio 1999, aumentata l'efficienza della gestione della memoria, aggiunta la 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, filesystem Ext3, supporto USB, ACPI;
- Linux 2.6 — dicembre 2003, supporto per SELinux, strumenti per il tuning automatico dei parametri del kernel, sysfs, sistema di gestione della memoria rielaborato;
- Nel 2005 è stato presentato l'hypervisor Xen, che ha aperto l'era della virtualizzazione;
- A settembre 2008 è stata rilasciata la prima versione della piattaforma Android, basata sul kernel Linux;
- A luglio 2011, dopo 10 anni di sviluppo della serie 2.6.x, è stato effettuato il passaggio alla numerazione 3.x. Il numero di oggetti nel repository Git ha raggiunto i 2 milioni;
- Nel 2015 è stata rilasciata la versione 4.0 del kernel Linux. Il numero di oggetti git nel repository ha raggiunto 4 milioni.
- Ad aprile 2018, il traguardo di 6 milioni di oggetti git nel repository del kernel è stato superato.
- A gennaio 2019 è stato creato il ramo del kernel Linux 5.0. Il repository ha raggiunto 6,5 milioni di oggetti git.
- Il kernel 5.8, pubblicato ad agosto 2020, è diventato il più grande mai esistito in termini di numero di modifiche.
- Nel kernel 5.13 è stato stabilito il record di 2150 sviluppatori, le cui modifiche sono state integrate nel kernel.
- Ad agosto 2022, è stata formata la branca del kernel Linux 6.0, poiché nella branca 5.x si erano accumulati un numero sufficiente di rilasci per cambiare il primo numero della 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.
Circa il 65% di tutte le modifiche al kernel sono state apportate dalle 20 aziende più attive. Ad esempio, durante lo sviluppo del kernel 6.10, il 15.3% di tutte le modifiche (nel kernel 6.9 era del 12.9%) è stato preparato da Intel, il 7.4% (7.1%) da Google, il 6.9% (5.6%) da Red Hat, il 6.3% (6.4%) da Linaro, il 4.6% (5.7%) da AMD, il 3.3% (2.2%) da Oracle, il 3.2% (2.9%) da Meta, il 2.5% (3.2%) da SUSE, il 2.4% (2.1%) da IBM, il 2.3% (2.4%) da Huawei, l'1.9% (2.1%) da Qualcomm, l'1.5% (1.7%) da NVIDIA e l'1.2% (1.2%) da ARM. L'11.9% (nel kernel 6.9 era del 14.2%) delle modifiche sono state preparate da partecipanti indipendenti o sviluppatori che non hanno dichiarato esplicitamente il loro lavoro per specifiche aziende. Per numero di righe di codice aggiunte nel kernel 6.10, le aziende leader sono state Intel, Linaro e Red Hat, le cui quote sono state del 13.6%, 13.3% e 7.2% (nel kernel 6.9 le leadership erano di AMD, Red Hat e Intel con quote del 21.7%, 11.5% e 8.9%).
Fonte: opennet.ru
