Il kernel Linux compie 30 anni

Il 25 agosto 1991, dopo cinque mesi di sviluppo, lo studente di 21 anni Linus Torvalds annunciò alla teleconferenza comp.os.minix che era stato completato un prototipo funzionante di un nuovo sistema operativo Linux, il porting di bash 1.08 e gcc 1.40 aveva stato completato. La prima versione pubblica del kernel Linux è stata introdotta il 17 settembre. Il kernel 0.0.1 era compresso da 62 KB e conteneva circa 10 righe di codice sorgente. Il moderno kernel Linux ha oltre 28 milioni di righe di codice. Secondo uno studio commissionato dall'Unione Europea nel 2010, il costo approssimativo per sviluppare da zero un progetto simile al moderno kernel Linux sarebbe di oltre un miliardo di dollari USA (il calcolo è stato effettuato quando il kernel aveva 13 milioni di righe di codice) , secondo altre stime - più di 3 miliardi.

Il kernel Linux è stato ispirato dal sistema operativo MINIX, che non si adattava a Linus con la sua licenza limitata. Successivamente, quando Linux è diventato un progetto ben noto, i detrattori hanno cercato di accusare Linus di copiare direttamente il codice di alcuni sottosistemi MINIX. L'attacco è stato respinto da Andrew Tanenbaum, l'autore di MINIX, che ha incaricato uno studente di fare un confronto dettagliato tra il codice Minix e le prime versioni pubbliche di Linux. I risultati dello studio hanno mostrato la presenza di solo quattro corrispondenze minori di blocchi di codice, a causa dei requisiti di POSIX e ANSI C.

Linus originariamente pensò di chiamare il kernel Freax, dalle parole "free", "freak" e X (Unix). Ma il nome "Linux" è stato dato al kernel da Ari Lemmke, che, su richiesta di Linus, ha posizionato il kernel sul server FTP dell'università, nominando la directory con l'archivio non "freax", come chiese Torvalds, ma "linux ”. È interessante notare che l'intraprendente uomo d'affari William Della Croce (William Della Croce) è riuscito a registrare il marchio Linux e ha voluto riscuotere i diritti d'autore nel tempo, ma in seguito ha cambiato idea e ha trasferito tutti i diritti sul marchio a Linus. La mascotte ufficiale del kernel Linux, il pinguino di Tux, è stata scelta a seguito di un concorso tenutosi nel 1996. Il nome Tux sta per Torvalds UniX.

Dinamiche di crescita della codebase (numero di righe di codice sorgente) del kernel:

  • 0.0.1 - settembre 1991, 10mila righe di codice;
  • 1.0.0 - marzo 1994, 176mila righe di codice;
  • 1.2.0 - marzo 1995, 311mila righe di codice;
  • 2.0.0 - giugno 1996, 778mila 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.

Avanzamento dello sviluppo principale:

  • Linux 0.0.1 - settembre 1991, prima versione pubblica che supporta solo CPU i386 e avvio da floppy;
  • Linux 0.12 - gennaio 1992, il codice iniziò a essere distribuito sotto licenza GPLv2;
  • Linux 0.95 - marzo 1992, ha aggiunto la possibilità di eseguire il sistema X Window, implementato il supporto per la memoria virtuale e una partizione di swap.
  • Linux 0.96-0.99 - 1992-1993, sono iniziati i lavori sullo stack di rete. È stato introdotto il file system Ext2, è stato aggiunto il supporto per il formato di file ELF, sono stati introdotti driver per schede audio e controller SCSI, è stato implementato il caricamento dei moduli del kernel ed è stato implementato il file system /proc.
  • Nel 1992 apparvero le prime distribuzioni di SLS e Yggdrasil. Nell'estate del 1993 furono fondati i progetti Slackware e Debian.
  • Linux 1.0 - marzo 1994, primo rilascio ufficialmente stabile;
  • Linux 1.2 - marzo 1995, un aumento significativo del numero di driver, supporto per le piattaforme Alpha, MIPS e SPARC, capacità di stack di rete ampliate, comparsa di un filtro pacchetti, supporto NFS;
  • Linux 2.0 - giugno 1996, supporto per sistemi multiprocessore;
  • Marzo 1997: viene fondata LKML, la mailing list degli sviluppatori del kernel Linux;
  • 1998: lancio del primo cluster Top500 basato su Linux, composto da 68 nodi con CPU Alpha;
  • Linux 2.2 - gennaio 1999, migliorata efficienza del sistema di gestione della memoria, aggiunto il supporto per IPv6, implementato un nuovo firewall, introdotto 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 di regolazione automatica dei parametri del kernel, sysfs, sistema di gestione della memoria riprogettato;
  • Nel 2005 è stato introdotto l'hypervisor Xen, che ha inaugurato l'era della virtualizzazione;
  • Nel settembre 2008 è stata costituita la prima versione della piattaforma Android basata sul kernel Linux;
  • Nel luglio 2011, dopo 10 anni di sviluppo del ramo 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 è avvenuto il rilascio del kernel Linux 4.0. Il numero di oggetti git nel repository ha raggiunto i 4 milioni;
  • Nell'aprile 2018 è stata superata la pietra miliare dei 6 milioni di oggetti git nel repository principale.
  • Nel gennaio 2019 è stato formato il ramo del kernel Linux 5.0. Il repository ha raggiunto il livello di 6.5 milioni di oggetti git.
  • Pubblicato nell'agosto 2020, il kernel 5.8 è stato il più grande in termini di numero di modifiche di tutti i kernel durante l'intera vita del progetto.
  • Nel kernel 5.13 è stato stabilito un record per il numero di sviluppatori (2150), le cui modifiche sono state incluse nel kernel.
  • Nel 2021, il codice per lo sviluppo di driver in Rust è stato aggiunto al ramo del kernel Linux-next. Sono in corso lavori per includere componenti per supportare Rust nella parte principale del core.

Il 68% di tutte le modifiche al core sono state apportate dalle 20 aziende più attive. Ad esempio, durante lo sviluppo del kernel 5.13, il 10% di tutte le modifiche sono state preparate da Intel, il 6.5% da Huawei, il 5.9% da Red Hat, il 5.7% da Linaro, il 4.9% da Google, il 4.8% da AMD, il 3.1% da NVIDIA, il 2.8 % da Facebook, 2.3% - SUSE, 2.1% - IBM, 1.9% - Oracle, 1.5% - ARM, 1.4% - Canonical. Il 13.2% delle modifiche è stato preparato da contributori o sviluppatori indipendenti che non hanno dichiarato esplicitamente di lavorare per determinate aziende. L'1.3% delle modifiche è stato preparato da studenti, laureati e rappresentanti delle istituzioni educative. In termini di numero di 5.13 righe di codice aggiunte al kernel, AMD è leader, la cui quota è stata del 20.2% (il driver amdgpu ha circa 3 milioni di righe di codice, ovvero circa il 10% della dimensione totale del kernel - 2.4 milioni le linee sono contabilizzate da file di intestazione generati automaticamente con i dati per i registri GPU).

Fonte: opennet.ru

Aggiungi un commento