Kernel Linux

Linux

Informazione
Creatore Linus Torvalds
Sviluppato da Linus Torvalds e migliaia di collaboratori
Prima versione 0,01 (17 settembre 1991)
Ultima versione 5.12 (25 aprile 2021)
Depositare

git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Stato del progetto In costante sviluppo
Scritto in C , assembler e C++
Ambiente Tipo UNIX
Le lingue inglese
genere Nucleo modulare monolitico
Politica di distribuzione Gratuito
Licenza GPLv2 , eccetto i BLOB proprietari
Sito web www.kernel.org

Il kernel Linux è un kernel di UNIX . Viene utilizzato in diversi sistemi operativi tra cui GNU/Linux (comunemente chiamato "Linux") e Android . Il kernel Linux è un software parzialmente libero (contenente BLOB e moduli non liberi - vedi Linux-libre ) sviluppato principalmente in linguaggio C da migliaia di volontari e dipendenti che collaborano su Internet .

Il kernel è il cuore del sistema, è lui che si occupa di dotare il software di un'interfaccia di programmazione per utilizzare l'hardware. Il kernel Linux è stato creato nel 1991 da Linus Torvalds per PC compatibile . Originariamente progettato per l' architettura del processore x86 , è stato successivamente portato su molti altri, inclusi m68k , PowerPC , ARM , SPARC , MIPS e RISC-V . È utilizzato in una gamma molto ampia di apparecchiature, dai sistemi embedded ai supercomputer , inclusi telefoni cellulari e personal computer .

Le sue caratteristiche principali sono di essere multitasking e multiutente . Rispetta gli standard POSIX che lo rendono un degno erede dei sistemi UNIX . Inizialmente, il kernel è stato progettato per essere monolitico. Questa scelta tecnica fu occasione di accesi dibattiti tra Andrew S. Tanenbaum , professore alla Libera Università di Amsterdam che aveva sviluppato Minix , e Linus Torvalds . Andrew Tanenbaum sostiene che i kernel moderni devono essere micro-kernel e Linus risponde che le prestazioni del micro-kernel non sono buone. Dalla versione 2.0, il kernel, sebbene non sia un micro-kernel, è modulare, cioè alcune funzionalità possono essere aggiunte o rimosse dal kernel al volo (in uso).

Storia

Nel 1991 , i PC compatibili dominano il mercato dei personal computer e generalmente funzionano con i sistemi operativi MS-DOS , Windows o OS/2 . I PC basati sul microprocessore Intel 80386 , venduti dal 1986, iniziano ad essere accessibili. Ma i sistemi tradizionali rimangono impegnati nella compatibilità con i vecchi processori Intel a 16 bit e utilizzano in modo improprio le capacità a 32 bit e l'unità di gestione della memoria dell'80386.

È quest'anno che lo studente finlandese Linus Torvalds , indisposto dalla scarsa disponibilità del server informatico UNIX presso l' Università di Helsinki , intraprende lo sviluppo di un kernel del sistema operativo , che in seguito verrà chiamato "Linux". Linus vuole poi capire soprattutto il funzionamento del suo computer basato su un Intel 80386.

Linus Torvalds apprendista con il sistema operativo Minix . Poiché il progettista di Minix - Andrew Tanenbaum - si rifiuta di incorporare contributi volti a migliorare Minix, Linus decide di programmare una sostituzione di Minix. Inizia sviluppando un semplice emulatore di terminale , che utilizza per connettersi tramite modem al server del computer della sua università. Dopo aver aggiunto varie funzionalità tra cui un filesystem compatibile con quello di Minix, Linus indirizza il suo progetto verso qualcosa di più ambizioso: un kernel agli standard POSIX . A questo kernel adatta molti componenti disponibili del sistema operativo GNU per ottenere un sistema operativo più completo.

Il 25 agosto 1991, annuncia sul forum di notizie Usenet : comp.os.minix che scrive un sistema operativo, ma come un "hobby, che non sarà grande e professionale come gnu". Il5 ottobre 1991, annuncia la disponibilità di una bozza della versione 0.02 del suo kernel, la versione 0.01 essendo stata distribuita più che riservata. finalmente infebbraio 1992, la versione 0.12 è rilasciata sotto la GNU General Public License (GNU GPL) invece della licenza ad hoc che in precedenza vietava la ridistribuzione commerciale.

La versione Linux 1.0.0 è stata rilasciata il 14 marzo 1994 con 176.250 righe di codice.

Inizialmente chiamato Freax dal suo creatore, il progetto trova il suo nome definitivo grazie ad Ari Lemmke , amministratore del server FTP ftp.funet.fi , che ospita il lavoro di Linus Torvalds in una directory chiamata Linux . Questa fu la prima apparizione di un termine composto da "Linus" e "UNIX", che sarebbe poi diventato un marchio registrato a nome di Linus Torvalds. Il pinguino di Tux , disegnato da Larry Ewing nel 1996, diventa la mascotte del progetto.

Il rilascio del codice Linux ha generato molto interesse nella comunità degli utenti Minix. Da allora, migliaia di programmatori volontari in tutto il mondo hanno preso parte al progetto. Il modello di sviluppo di Linux è ancora considerato un tipico rappresentante dell'organizzazione caratteristica dei grandi collettivi open source . Oggi partecipano al progetto centinaia di appassionati e aziende di ogni dimensione, di cui Linus Torvalds è tuttora coordinatore. Eric Raymond descrive nel saggio La Cathédrale et le Bazar (2001) il modello di sviluppo del kernel Linux e parte del software libero .

Nei sistemi embedded , Linux è spesso utilizzato con gli strumenti uClibc e BusyBox che sono stati sviluppati per hardware particolarmente limitato nella capacità di memoria. Essere in grado di compilare il kernel Linux con opzioni adattate in modo specifico all'hardware di destinazione offre agli sviluppatori molte possibilità di ottimizzazione.

Sviluppo del kernel Linux

Se all'inizio della sua storia lo sviluppo del kernel Linux era svolto da sviluppatori volontari, oggi i principali contributori sono un gruppo di aziende, spesso in competizione, come Red Hat , Novell , IBM o Intel .

IBM aveva il suo UNIX, denominato AIX, ma il passaggio a Linux - oltre a consentire a sviluppatori e manutentori di AIX di essere assegnati ad altri progetti - ha anche il vantaggio di consentire un ripristino, senza difficoltà di porting di applicazioni o nuova formazione per i team IT , dai server PC Linux a Linux sulle serie i, p e z.

La licenza del kernel Linux è la GNU General Public License nella versione 2. Questa licenza è gratuita e ti consente di utilizzare, copiare e modificare il codice sorgente come desideri o hai bisogno. Pertanto, chiunque abbia le conoscenze necessarie può partecipare al test e all'evoluzione del kernel .

Ritmo di sviluppo

Tra marzo e aprile 2005, il numero di righe di codice è raddoppiato (da 4,4 milioni a 8,8 milioni). All'inizio del 2009, la versione 2.6.30 del kernel linux consisteva di oltre 11,5 milioni di righe di codice in 28.000 file, mentre tra il Natale 2008 e ilgennaio 2010.

Tra il 2005 e la metà del 2009, 5.000 sviluppatori e 500 aziende hanno partecipato alla stesura del kernel. Il numero di patch offerte è in aumento, soprattutto dalla versione 2.6.25.

Ruolo di Linus Torvalds

Linus Torvalds , creatore del kernel Linux, è stato il manutentore ufficiale sin dal suo inizio nel 1991 . È una sorta di "dittatore benevolo", l'autorità in termini di scelte tecniche e organizzative. Le diverse versioni del kernel pubblicate da Linus Torvalds sono chiamate "mainline" o "vanilla" in inglese. Questi sono i kernel vanilla che vengono integrati dai distributori, a volte con l'aggiunta di alcune patch di sicurezza, correzioni di bug o ottimizzazioni.

Processo di sviluppo

Linus Torvalds ha portato un cambiamento radicale nel modo in cui vengono sviluppati i sistemi operativi, sfruttando appieno la potenza di Internet.

Il processo di sviluppo di Linux è pubblico su Internet: i sorgenti del kernel sono visibili a tutti, le modifiche a questi sorgenti sono pubblicate e riviste su Internet e sono anche visibili a tutti. Fin dall'inizio è stato adottato un ciclo di sviluppo incrementale e rapido (oggi viene rilasciata una nuova versione ogni 9 settimane circa), che ha permesso di costruire attorno a Linux e a Internet a strati successivi una comunità dinamica composta da sviluppatori, aziende e utenti.

Modalità di composizione

I numeri di versione del kernel sono composti da tre numeri: il primo è il numero maggiore, il secondo è il numero minore. Prima del rilascio delle versioni 2.6.x, anche i numeri minori indicavano una versione stabile e i numeri minori dispari indicavano una versione di sviluppo. Pertanto, le versioni 2.2, 2.4 sono stabili, le versioni 2.3 e 2.5 sono versioni di sviluppo. Tuttavia, dalla versione 2.6 del kernel questo modello di numerazione stabile/di sviluppo è stato interrotto e quindi non c'è un significato speciale per i numeri dispari o anche minori. Il terzo numero indica una revisione, che corrisponde a correzioni di bug, correzioni di sicurezza o un'aggiunta di funzionalità, ad esempio 2.2.26, 2.4.30 o 2.6.11. Il passaggio alla versione 3.0 è stato deciso da Linus Torvalds in occasione dei 20 anni del kernel Linux, anche se il vero motivo era piuttosto arbitrario.

Da marzo 2005(data di rilascio del kernel 2.6.11), Greg Kroah-Hartman e Chris Wright tentano di mantenere un ramo stabilizzato del kernel di vaniglia Linus Torvalds. Il loro obiettivo è stabilizzare ulteriormente il kernel, integrando patch di correzione di bug, sicurezza o ottimizzazione semplici e concise che soddisfino criteri rigorosi. Questo ramo non integra nuove funzionalità. Le loro pubblicazioni sono indicate da un quarto numero di versione, ad esempio 2.6.11.1 o 2.6.11.6. Il funzionamento tecnico e organizzativo di questa filiale sarà testato nel tempo, nel medio e lungo termine.

Cerotti

Ci sono una moltitudine di patch disponibili su Internet all'interno della comunità di sviluppo del kernel Linux. I più noti sono quelli di Andrew Morton con suffisso -mm che integrano patch di funzionalità e ottimizzazioni molto richieste e il WOLK ( working over loaded kernel , funzionale kernel overload).

La distribuzione Ubuntu Studio include anche un kernel a bassa latenza ( Low-latency Kernel ) che garantisce una minore latenza per le applicazioni audio, a costo però di un maggior carico sul sistema stesso (dovuto a loop di vigilanza, polling ) e quindi una diminuzione nella sua portata . Questo kernel è poco utilizzato al di fuori della creazione musicale, che richiede il minor ritardo possibile tra il colpo di un tasto e la produzione dell'effetto corrispondente.

Linux in tempo reale

Le patch di Ingo Molnár con suffisso -rt sono usate dalle distribuzioni Linux multimediali come DeMuDi  ; forniscono le prestazioni in tempo reale necessarie per il corretto funzionamento di una workstation multimediale professionale. Ingo Molnar è anche dietro il debugger del kernel kgdb .

Cronologia

Cronologia del rilascio di Linux
Versione Datato Principali miglioramenti
0.01 17 settembre 1991 Distribuzione riservata (10.000 righe di codici).
0.02 5 ottobre 1991 Annunci su usenet, sistema quasi inutilizzabile.
0.03 ottobre 1991 bash e gcc disponibili in binario.
0.10 dicembre 1991 Primi contributi esterni, internazionalizzazione della tastiera.
0.11 metà-dicembre 1991 Driver per floppy disk, SCSI in sviluppo.
0.12 5 gennaio 1992 Memoria virtuale, sistema utilizzabile, più hardware supportato, distribuito in GNU GPL , console virtuali.
0,95 7 marzo 1992 Init/login, viene portato X Window , esiste un newsgroup : alt.os.linux
0,95 a 17 marzo 1992 Nuovo manutentore per il dischetto di root di Linux  : Jim Winstead .
0,96 - 0,99 livello patch 15Z 2 anni di sviluppo, per l'aggiunta di funzionalità e correzioni, il comp.os.linux.* I forum sono i più frequentati di usenet e vengono riorganizzati 3 volte, segno che la community sta crescendo ed è molto attiva.
1.0 marzo 1994 Il kernel Linux è stabile per la produzione e fornisce i servizi di un classico UNIX (176.000 righe di codice).
1.2 marzo 1995 Molte più architetture di processori, moduli caricabili, ecc. (311.000 righe di codice)
2.0 luglio 1996 PowerPC , Multiprocessore , più hardware supportato, gestione della rete più completa, aspetto della mascotte Tux .
2.1.80 gennaio 1998 Supporto preliminare per architetture ARM
2.2 gennaio 1999 Framebuffer , NTFS , Joliet , IPv6 ,… (1,8 milioni di righe di codice)
2.4 gennaio 2001 USB , PCMCIA , I2O, NFS 3, X86-64 … (3.378 milioni di righe di codici)
2.6 dicembre 2003 ALSA , kernel prerilasciabile, ACL , NFS 4,… (5,93 milioni di righe di codice)
2.6.16 LTS 20 marzo 2006 Prima versione con supporto esteso, supporto OCFS2, supporto per processore cellulare , aggiunte 13 nuove chiamate di sistema per piattaforme x86 e x86_64, supporto cpufreq per Power Mac G5 , gestione dell'alimentazione migliorata per alcuni dispositivi, supporto IPv6 per protocollo DCCP , gestione ACL per file system CIFS , Gestione del file system HFSX , supporto per l'esecuzione di eseguibili dal file system plan9,….
2.6.17 17 giugno 2006 Supporto per CPU multicore Niagara di Sun, supporto per chipset wifi Broadcom 43xx, ottimizzazione dell'immagine del kernel all'avvio su x86, nuovo scheduler ottimizzato per processori multicore….
2.6.18 19 settembre 2006 Strumento Lockdep, eredità delle priorità, gestione delle priorità con SMPnice, schedulatore CFQ,….
2.6.19 29 novembre 2006 File system GFS2, crittografia eCryptfs, sottosistema libata, ecc.
2.6.20 4 febbraio 2007 Virtualizzazione KVM, supporto UDP-Lite, scansione asincrona SCSI,….
2.6.21 25 aprile 2007 Interfaccia di paravirtualizzazione VMI (Virtual Machine Interface), Dynticks e Clockevents,….
2.6.22 8 luglio 2007 Tutto nuovo livello wifi, allocatore di memoria SLUB, schedulatore I/O CFQ, nuovi driver… (8,499 milioni di righe di codice).
2.6.23 9 ottobre 2007 Nuovo programmatore di attività CFS , ambiente di supporto del driver dello spazio utente UIO integrato nel kernel, allocatore di memoria predefinito SLUB,….
2.6.24 24 gennaio 2008 Unificazione di architetture i386 e x86-64 , I/O vettoriali, autenticazione di periferiche USB, scheduling di gruppo con CFS ,….
2.6.25 16 aprile 2008 SMACK (alternativa a SELinux ), gestione CAN bus , riprogettazione di timerfd , miglioramento della gestione in tempo reale ….
2.6.26 13 luglio 2008 Integrazione del debugger del kernel kgdb , inizio del supporto per reti con topologia mesh unificata , supporto per schermi Braille , supporto per PAT per architettura x86 , assembly “--bind” in sola lettura, gestione dei diritti di sicurezza per processo ( securebits ), virtualizzazione migliorata con KVM ….
2.6.27 LTS 9 ottobre 2008 Set di driver per webcam GSPCA, livello di rete multi-file, UBIFS , sistema di  debug ftrace (en) ….
2.6.28 24 dicembre 2008 Memory manager per schede grafiche GEM ( Graphics Execution Manager ), file system ext4 , miglior supporto per la gestione della memoria, gestione delle reti UWB ….
2.6.29 23 marzo 2009 Integrazione di Btrfs , squashfs , batteria WiMAX , miglioramento di eCryptfs  (in) , integrazione di KMS , ecc..
2.6.30 9 giugno 2009 Integrazione di NILFS , una cache locale per file system remoti , il modulo di sicurezza TOMOYO, supporto per apparecchiature di archiviazione degli oggetti (11.561 milioni di righe di codice).
2.6.31 9 settembre 2009 Supporto per USB 3.0, aspetto API fsnotify per la notifica di eventi relativi al file system, deframmentazione del disco hot to ext4 , monitoraggio delle prestazioni PerfCounters .
2.6.32 LTS 3 dicembre 2009 Scrittura dati da BDI, Modifiche allo scheduler CFS, Gestione energetica dinamica, Gestione integrità TXT , devtmpfs per l'elenco dei dispositivi, tecnica KSM per ridurre il footprint di memoria dei sistemi virtualizzati con KVM , socket preposto alla funzione TRIM di Btrfs .
2.6.33 LTS 24 febbraio 2010 File system DRBD , Nuovo driver , Transazione TCP tramite cookie, controller IO-Block, supporto funzione TRIM da ext4 .
2.6.34 LTS 16 maggio 2010 File system Ceph e LogFS, standby del dispositivo asincrono, meccanismo di sicurezza GTSM, Lockdep-RCU, VGA-Switcheroo.
2.6.35 LTS 2 agosto 2010 Funzione Cpu_stop, gestione dell'energia, compressione della memoria, prestazioni di rete con RPS e RFS, qualità del servizio con pm_qos, gestione degli interrupt.
2.6.36 20 ottobre 2010 AppArmor , riscrittura della funzione OOM Killer , strumento fanotify , ottimizzazioni VFS .
2.6.37 5 gennaio 2011 Prestazioni migliorate di ext4 e tracciamento dei meccanismi ( etichetta di salto ) supporto FITRIM (un TRIM differito) per ext4 , introduzione dell'allocatore di memoria memblock da sostituire early_res, batteria PPTP , primo driver wifi Broadcom (tutti i principali costruttori di wifi ora hanno un driver gratuito).
2.6.38 15 marzo 2011 Nuova gestione dell'impaginazione macroscopica , ottimizzazione della risoluzione dei percorsi di accesso .
2.6.39 18 maggio 2011 Approccio threaded al collegamento delle periferiche , integrazione ufficiale di ipset, supporto FITRIM (un TRIM ritardato) da parte di Btrfs , fine del blocco globale ( Big Kernel Lock ).
3.0 LTS 22 luglio 2011 Nuova cache della pagina di memoria, miglioramenti Btrfs , nuova interfaccia di accesso agli allarmi del BIOS , rimozione del prefetch, compilatore al volo per le istruzioni di confronto dello stack di rete.
3.1 24 ottobre 2011 Architettura OpenRISC , gestione consumi tramite cpupower , aggiunte funzionalità per KVM , miglioramento gestione memoria Xen , gestione velocità disco , Virtual File System , protocollo BATMAN , aggiunta driver NFC
3.2 LTS 4 gennaio 2012 Miglioramento dei driver CFS , ext4 , Btrfs , MPI e grafici, algoritmi Extended Verification Module per la verifica crittografica e la riduzione della velocità proporzionale per lo stack TCP , gestione dei generatori di numeri casuali digitali e delle architetture Hexagon e secAMD Bulldozer , gestione del writeback dinamico , implementazione dell'assembly di SHA -1 , Blowfish e Twofish , RAID-5 per EXOFS  (en) , API Dynamic Voltage and Frequency Scaling , lettura asincrona per SMB . La versione 3.2.5 risolve un bug che esisteva dalla versione 2.6.38 in Active State Power Management (ASPM) che causava un consumo energetico eccessivo.
3.3 19 marzo 2012 Integrazione di driver Android , libgcrypt , Open vSwitch, un driver di rete "team", architettura C6X, aggiunta di un cgroup per le risorse di rete, "naturalizzazione" di memcg, nuovi limiti infrastrutturali "  code byte  ", buffer DMA , PAE per processori ARM , supporto LLCP e NVM Express , nuovo gestore della batteria, miglioramento di ext4 e Btrfs , ricostruzione "hot" per RAID, uscita audio tramite HDMI
3.4 20 maggio 2012 Architettura X32 , dm-verity nella scheda periferiche , unificazione della gestione del clock per l'architettura ARM, modulo di sicurezza YAMA, potenziamento di ext4 , Btrfs , driver grafici e perf , supporto per Universal Flash Storage e HSI, algoritmo Camellia in assembler, domini IRQ
3.5 21 luglio 2012 Algoritmo CoDel per lo stack TCP, revisione della tabella delle eccezioni x86, migliore gestione di EDAC , NUMA , spazi dei nomi utente e log del kernel, miglioramenti di Btrfs , ext4 , perf e AMD e driver grafici Intel , sospensione automatica del metodo , filtraggio delle chiamate di sistema da parte di Seccomp sonde uprobes, modalità di riparazione per le connessioni TCP
3.6 30 settembre 2012 Standby e ibernazione combinati, risparmio energetico per ATA e PCIe, miglioramenti a TCP , Btrfs ed ext4 , generazione di entropia e driver grafici, rimozione della cache di routing IPv4, swap su NFS, migliore gestione degli SSD in RAID
3.7 11 dicembre 2012 Compilazione multipiattaforma, virtualizzazione e versione a 64 bit per l'architettura ARM, Supervisor Mode Access Prevention , gestione del modulo di firma da MODSIGN, Wii Balance Board , processore SPARC T4  (in) , riscrittura KMS e New, driver Radeon migliorato, File system TCP , perf , Btrfs ed ext4 , NAT IPv6 , VXLAN, pulizia delle intestazioni
3.8 19 febbraio 2013 Fine del supporto i386 , aggiunto supporto POWER8 , NUMA scheduler migliorato , driver grafici Tegra , Intel , Nouveau e Radeon migliorati , nuovo file system F2FS e Btrfs ed ext4 migliorati , Netlink migliorato , crittografia algoritmi migliorata , gestione Wi-Fi 802.11ac e 802.11ad , spazi dei nomi di rete per gli utenti, implementazione di RFC5961. Aggiunti contenitori LXC .
3.9 29 aprile 2013 Nuova modalità standby, raggruppamento delle architetture ARM, miglioramento dei driver grafici Intel , Nouveau e Radeon , RAID 5 e 6 per Btrfs , miglioramenti di IPv6 , nuovo filtro in Netfilter , blocco dei filtri sul socket , device-mapper-cache per utilizzare un dispositivo come cache di un altro algoritmo LZO migliorato
3.10 LTS 30 giugno 2013 Aggiunto supporto per Unified Video Decoder  (in) , integrazione Bcache SSD / HDD , supporto per processori Intel Haswell notevolmente migliorato , supporto migliorato per processori ARM a 64 bit, funzionalità di virtualizzazione migliorate e aggiunta di driver audio. Come con ogni nuova versione, vengono forniti aggiornamenti per i filesystem ext4 e btrfs
3.11 2 settembre 2013 Compressione delle pagine di swap, compressione del kernel in LZ4 per l'architettura ARM, ottimizzazione della creazione di file temporanei, miglioramenti per le architetture ARM e Aarch64, driver grafici intel, nVidia e ATI/AMD, riduzione del consumo della scheda grafica tramite Dynamic Power Management e Active State Power Management , miglioramenti a ext4 , Btrfs, XFS, F2FS e Lustre
3.12 LTS 3 novembre 2013 Prestazioni migliorate di cpufreq , nodi di rendering per DRM , gestione dei diritti per buffer grafici, infoframe HDMI e ultra HD, deep sleep per processori grafici Haswell, spegnimento automatico e decodifica hardware VP3-VP4 per schede nVidia, migliore gestione della potenza per ATI/AMD schede, supporto per core grafici Adreno, prestazioni migliorate di ext4 e F2FS
3.13 20 gennaio 2014 Meccanismo UEFI Common Platform Error record , earlyprintk per UEFI , seqcount/seqlocks in lockdep, bilanciamento automatico NUMA, limitazione del consumo di intel, driver migliorato per GPU Adreno ARM e schede nVidia, suono su HDMI e gestione dell'energia GPU per AMD/ATI, processori di gestione Broadwell (microarchitettura)  (en) e Display Serial Interface , sostituzione di iptables con nftables , code multiple per la scrittura di file da sistemi multi-core, migliore gestione di loginuid , miglioramento di /dev/urandom
3.14 LTS 31 marzo 2014 Supporto per coprocessori crittografici AMD , chipset Intel Merrifield e nuovi processori ARM e MIPS, driver grafici AMD e Intel migliorati, accelerazione per GPU nVidia GK110 / GK208, indirizzi IPv6 temporanei nello spazio utente, TCP autocap, debugger per BSD Packet Filter , miglioramento di Btrfs e F2FS , miglioramento della virtualizzazione da parte di Xen .
3.15 8 giugno 2014 Supporta la modalità mista EFI , supporta il set di istruzioni AVX-512  (in) , pianificatore migliorato, abbandono delle vecchie piattaforme x86, gestione migliorata delle chiavi di luminosità, miglioramento dei driver grafici gratuiti, protezione migliorata contro attacchi denial of service , supporto Bluetooth livello di sicurezza 4 , file system ext3 / 4 stabilizzati e XFS, Btrfs, F2FS migliorati
3.16 LTS 3 agosto 2014 Miglioramenti ai driver grafici gratuiti, TCP Fast Open disponibile per IPv6, correzioni di vulnerabilità, miglioramenti ai file system XFS, Btrfs, F2FS, Reiser4 e NFS
3.17 5 ottobre 2014 Supporta la modalità inattiva dalla generazione Broadwell (microarchitettura)  (en) , supporto per nuovi chip ARM, architetture di supporto finale IBM POWER3 e IBM RS64 , driver grafici gratuiti migliorati, correzioni di vulnerabilità, miglioramenti dei sistemi di file F2FS, NFS, XFS e Btrfs
3.18 LTS 7 dicembre 2014 Standby accelerato, supporto CLANG migliorato, miglioramenti dei driver grafici gratuiti, correzioni di vulnerabilità, miglioramenti del sistema di virtualizzazione Xen e KVM , F2FS, NFS, OverlayFS , miglioramenti del file system Ceph
3.19 8 febbraio 2015 Supporta nuovi chip ARM , supporta la tecnologia Intel MPX  (in) , migliore gestione del problema dell'anno 2038 , miglioramento dei driver grafici gratuiti, correzioni di vulnerabilità, miglioramenti del filesystem f2fs, NFS, OverlayFS, Ceph, Btrfs e SquashFS , miglioramenti ai sistemi di virtualizzazione Xen
4.0 12 aprile 2015 Aggiornamento immediato del kernel, supporto chip Trusted Platform Module 2.0, miglioramento del driver grafico gratuito, correzioni di vulnerabilità, miglioramenti del file system F2FS, OverlayFS, Ceph e Btrfs, miglioramenti del sistema di virtualizzazione KVM e Virtio
4.1 LTS 21 giugno 2015 Supporto di nuovi chip (ARM, Xilinx , Qualcomm ), miglioramento della gestione dell'energia, aggiornamento importante dell'architettura x86 , correzione delle vulnerabilità, miglioramento dei driver grafici gratuiti, file system e sistemi di virtualizzazione
4.2 30 agosto 2015 Supporto per nuovi chip (ARM, Hitachi H8 ), blocchi migliorati, prestazioni di rete migliorate, moduli di sicurezza migliorati, vulnerabilità con patch, driver grafici gratuiti migliorati, file system e sistemi Btrfs, Ext4, FUSE, F2FS e virtualizzazione KVM e Xen
4.3 1 ° novembre il 2015 Grafica Intel Skylake abilitata per impostazione predefinita, supporto AMD Radeon R9 Fury, supporto OpenGL per VMware, riscrittura driver NVIDIA/Nouveau, driver EXT3 scomparso (supportato dal driver EXT4), molti miglioramenti per XFS, EXT4, F2FS, Btrfs, RAID5/6 e TRIM .
4.4 LTS 10 gennaio 2016 Supporto per accelerazione grafica in macchina virtuale, miglioramento di I/O (diretto e asincrono), supporto per SSD a canale aperto, logging di RAID5 nel livello MD (RAID/ LVM ), programmi eBPF utilizzabili da utenti non privilegiati, nuovi piloti .
4.5 13 marzo 2016 Migliora la gestione dei consumi energetici. Supporto preliminare per AMD PowerPlay  (in) . Massiccia rielaborazione delle architetture ARM v6 e ARM v7.
4.6 15 maggio 2016 Aggiungendo il file system OrangeFS  (en) , aggiunto il supporto per USB 3.1, supporta la versione 5 del protocollo BATMAN .
4.7 24 luglio 2016 Gestione dei controller Microsoft Xbox One, Apple/Intel Thunderbolt (interfaccia) e USB/IP.
4.8 4 settembre 2016 Supporta l' overclocking di AMDGPU (tramite il supporto OverDrive).
4.9 LTS 11 dicembre 2016 Miglioramenti alla sicurezza del kernel. AMDGPU supporta AMD PowerPlay  (in) . Compatibile con Raspberry Pi Zero.
4.10 30 aprile 2017 Miglioramenti (esː Amlogic S905) e correzioni (esː AMD Ryzen ).
4.11 1 ° maggio il 2017 Miglioramenti e correzioni.
4.12 2 luglio 2017 Fornisce supporto per USB Type-C e IMSM ( Intel Matrix RAID  (en) Storage Manager).
4.13 3 settembre 2017 Miglioramenti ( ext4 , I/O , accelerazione TLS ) e correzioni.
4.14 LTS 12 novembre 2017 Aumento della RAM massima gestita su architetture x86_64 , Supporto per nuovi dispositivi ARM e correzioni.
4.15 28 gennaio 2018 Miglioramenti per quanto riguarda la resistenza a Meltdown (vulnerabilità) e Spectre (vulnerabilità) , molti miglioramenti per quanto riguarda AMDGPU .
4.16 16 maggio 2018 Miglioramenti relativi alla resistenza alle vulnerabilità di sicurezza nelle CPU. Aggiunta della seconda parte del codice riguardante AMD Secure Encrypted Virtualization  (en) .
4.17 3 giugno 2018 Miglioramenti per il kernel 4.17.
4.18 12 agosto 2018 Miglioramenti per il kernel 4.18.
4.19 LTS 22 ottobre 2018 Miglioramenti per il kernel 4.19.
4.20 23 dicembre 2018 Miglioramenti per il kernel 4.20.
5,0 3 marzo 2019 Miglioramento del driver gratuito per AMD Radeon VII, portando il rendering a un livello mai raggiunto da nessun driver GPU gratuito e confrontandosi con il driver proprietario per Nvidia. .
5.1 5 maggio 2019 Miglioramenti relativi a VFS con l'aggiunta di fsopen, miglioramenti a io asincrono con l'integrazione di io_uring. .


5.2 7 luglio 2019 Miglioramenti nel kernel 5.2.
5.3 15 settembre 2019 Miglioramenti riguardanti il ​​kernel 5.3.
5.4 24 novembre 2019 Miglioramenti riguardanti il ​​kernel 5.4.
5,5 26 gennaio 2020 Miglioramenti per il kernel 5.5.
5.6 29 marzo 2020 Miglioramenti per il kernel 5.6.
5.7 31 maggio 2020 Miglioramenti per il kernel 5.7.
5.8 2 agosto 2020 Miglioramenti nel kernel 5.8.
5.9 11 ottobre 2020 Miglioramenti nel kernel 5.9.
5.10 13 dicembre 2020 Miglioramenti per il kernel 5.10.
5.11 14 febbraio 2021 Miglioramenti per il kernel 5.11.


Fonte: www.kernel.org

 

Gestione delle versioni

Il nucleo è stato a lungo mantenuto senza il controllo della versione del sistema , principalmente perché a Linus Torvalds non piacevano i sistemi di controllo della versione centralizzati.

Nel 2002 , il kernel è passato a Bitkeeper , un sistema di controllo della versione proprietario che soddisfaceva i requisiti tecnici di Linus Torvalds. L'uso di questo software è stato offerto gratuitamente agli sviluppatori del kernel . Tuttavia, non essendo software libero , la scelta di questo prodotto ha suscitato polemiche nella community. Il sistema, ad esempio, non era interoperabile con i sistemi di controllo della versione open source come CVS e SVN .

Nel aprile 2005, gli sforzi di Andrew Tridgell per decodificare Bitkeeper hanno portato BitMover, l'editore di quel software, a interrompere il supporto per lo sviluppo di Linux. In risposta, Linus Torvalds e pochi altri hanno sviluppato un nuovo sistema di controllo della versione: Git . Una prima versione di Git è stata scritta in poche settimane e due mesi dopo è stata rilasciata una nuova versione del kernel sviluppata con Git. Lo sviluppo e la manutenzione del software Git sono stati poi rapidamente affidati a Junio ​​Hamano e alla community. Da allora è stato ampiamente adottato, tra gli altri, dalla comunità del software libero.

Caratteristiche tecniche

Compilazione del kernel

Come tutti i programmi per computer, il kernel Linux è scritto come codice sorgente e deve essere trasformato in un eseguibile binario per essere compreso dal microprocessore.

Poiché il codice sorgente del kernel Linux contiene una quantità molto grande di funzionalità, l'utente può scegliere di integrare solo quelle che gli sono utili o quelle più adatte a lui (molte funzionalità sono contemporanee): è la fase di configurazione del kernel.

La stragrande maggioranza delle distribuzioni GNU/Linux installa un kernel precompilato che soddisfa le esigenze di workstation e server. È quindi raro che un utente Linux debba compilare un kernel. La compilazione permette di adattare il kernel a esigenze specifiche come il supporto di hardware non comune, l'attivazione di funzionalità sperimentali o l'adattamento a piattaforme particolari come i sistemi embedded.

Il codice sorgente del kernel Linux è disponibile su kernel.org , ma le distribuzioni GNU/Linux forniscono anche sorgenti compressi sui loro depositi.

Il passaggio più importante nella creazione di un kernel personalizzato è la configurazione del kernel. Le opzioni di configurazione sono dichiarate nel file .config, ognuna corrisponde ad una caratteristica del kernel, che si decide di utilizzare o meno. In genere sono possibili tre scelte:

  • Y : la funzionalità è compilata e implementata nell'immagine del kernel
  • M : la funzionalità è compilata come modulo
  • N : la funzione viene ignorata

Alcune opzioni sono una scelta binaria: la funzionalità è inclusa nell'immagine del kernel o non è compilata.

Ci sono diversi strumenti per regolare la configurazione:

  • make config : programma in modalità testo che elenca tutte le opzioni e ti chiede di inserire la tua scelta
  • make menuconfig : utility in modalità testo scritta con ncurses , permette una più facile navigazione nella configurazione
  • make gconfig : strumento grafico basato su GTK +
  • make xconfig : strumento grafico basato su Qt
  • make defconfig : strumento utilizzato per recuperare i parametri di configurazione del kernel predefiniti. Questi parametri sono forniti dagli sviluppatori del kernel ogni volta che il kernel viene rilasciato.
  • make oldconfig : strumento utilizzato per recuperare i parametri di configurazione di una vecchia versione del kernel in modo da non ricominciare da capo la configurazione.
  • make olddefconfig : strumento che permette di recuperare i parametri di configurazione del kernel di default e di impostare gli altri parametri di default.
  • make localmodconfig : strumento utilizzato per recuperare i parametri di configurazione del kernel attualmente in esecuzione sulla macchina per caricare solo i moduli necessari.

La compilazione del kernel e dei moduli avviene tramite il comando make. Questa operazione può richiedere molto tempo, tuttavia l'utilizzo dell'argomento -jriduce il tempo di compilazione. Questo a scapito della reattività degli altri programmi e quindi del sistema operativo. L'installazione è automatizzata, i comandi make installe make modules_installconsentono rispettivamente di installare l'immagine del kernel e dei suoi moduli.

Per consentire al sistema di avviarsi con la nuova immagine del kernel, è necessario configurare il boot loader ( LILO , GRUB ) per eseguire l'immagine del kernel all'avvio. Con ( GRUB , GRUB2 ) il comando update-grub automatizza la configurazione.

La distribuzione Debian fornisce un'utilità make-kpkgche automatizza i passaggi precedenti e crea pacchetti Debian. Ciò consente quindi una facile distribuzione su un numero elevato di macchine. Altrimenti, sempre per debian, possiamo inserire i comandisudo su ; make menuconfig ; make deb-pkg ; cd ../ ; dpkg -i *deb

Interfacce

Portabilità

Sebbene l'obiettivo iniziale del progetto fosse solo quello di fornire un kernel simile a UNIX su architetture x86 , la disponibilità di sorgenti ha permesso ai contributori di adattarlo a un numero molto ampio di architetture .

Linux può essere eseguito su computer consumer e supercomputer di prima classe nella Top 500. novembre 2011 : in questa classifica Linux era presente sul 91,4% delle macchine.

Il kernel è utilizzato anche su sistemi embedded, dotati di hardware più modesto; alcuni degli esempi più noti sono i sistemi di navigazione satellitare TomTom oi telefoni con la distribuzione Android Linux .

Codifica dei caratteri

Sebbene la maggior parte delle applicazioni siano sviluppate per funzionare con particolari codifiche dei caratteri , il design del kernel Linux è tale che la codifica dei caratteri utilizzata non è nota. In particolare, come nel vecchio Unix, il nome dei file è considerato come una stringa di byte, senza che sia possibile conoscere in modo deterministico quale specifico testo rappresenta, in assenza della conoscenza della codifica dei caratteri utilizzata.

Per quanto riguarda lo shebang , il kernel Linux presuppone che gli script vengano scritti in una codifica di caratteri che si estende ASCII , senza includere un byte flag prima del primo carattere, come può accadere in Unicode . Tuttavia, il testo Unicode può passare attraverso il kernel, specialmente quando si accede a file system NTFS o CIFS / Samba .

controversie

All'inizio un semplice hobby di uno studente, il kernel Linux ha permesso l'emergere di sistemi operativi liberi in diretta concorrenza con altri sistemi operativi commerciali. Dal suo rilascio su molte architetture (dopo la versione 1.0), è stato oggetto di azioni legali  :

  • Sul marchio: nel 1995 , quando Linux aveva già acquisito una certa notorietà, un privato ebbe l'idea di registrare il marchio Linux , cosa che nessuno aveva fatto. La reazione è stata vivace in tutta la comunità, la controversia è stata risolta amichevolmente e Linus è diventato proprietario del nome Linux (e quindi libero di rifiutarlo o meno a una distribuzione ritenuta troppo commerciale).
  • Sul diritto d'autore: una causa contro SCO contro IBM in tema di kernel Linux: vedi su questo argomento SCO contro Linux .
  • Sui brevetti sul software: incompatibili con l'idea di interoperabilità essenziale per il successo del software libero, i brevetti sul software costituiscono una minaccia per Linux. Tali brevetti sono rilasciati negli Stati Uniti, ma sono stati respinti dal Parlamento europeo .

Recensioni

Brad Spengler , sviluppatore di grsecurity , accusa il kernel Linux di concentrare a volte i propri sforzi sulla funzionalità a scapito della sicurezza. Afferma che Linus Torvalds gli ha detto che non era interessato ad aggiungere utili opzioni di sicurezza per evitare buffer overflow in quanto rallenterebbe il caricamento delle applicazioni .

Critica l'assenza di una persona ufficialmente responsabile della sicurezza, con la quale sarebbe possibile comunicare in privato e in tutta sicurezza. Invece, l'unica soluzione è inviare un'e - mail a una mailing list di problemi di sicurezza in cui le vulnerabilità scoperte vengono talvolta utilizzate per scopi dannosi prima che venga rilasciato un aggiornamento di sicurezza, mentre gli utenti Linux non sono a conoscenza dell'esistenza di questo difetto.

Infine, mette in discussione l'implementazione del sistema LSM a partire dalla versione 2.6 del kernel che sarebbe stata implementata lassista e avrebbe facilitato l'inserimento di rootkit invisibili all'interno del sistema spacciandoli per moduli di sicurezza. Questa recensione non è più rilevante grazie alle modifiche apportate dalla versione 2.6.24.

Note e riferimenti

  1. (in) È ufficiale, Linux è stato rilasciato il 17 settembre 1991  " (consultato il 10 aprile 2018 )
  2. Linus Torvalds , “  Linux 5.12  ” ,25 aprile 2021(consultato il 26 aprile 2021 )
  3. (in) Linus Benedict Torvalds , "  comp.os.minix  " ,agosto 1991(consultato il 6 settembre 2009 )
  4. Queste informazioni sono tratte dal documento Birth of Linux , disponibile su Wikisource . Contiene i messaggi in questione e le loro traduzioni.
  5. Note di rilascio per Linux v0.12
  6. (in) "  Versione kernel Linux 1.0.0 rilasciata  " su www.webdevelopersnotes.com (consultato il 7 dicembre 2017 )
  7. (in) Nate Larkin , Samson and the Pirate Monks: Calling Men to Authentic Brotherhood , Thomas Nelson,18 febbraio 2007, 224  pag. ( ISBN  978-1-4185-7769-8 , leggi online )
  8. Secondo Lars Wirzeniu in una presentazione del 1998: Linux Aneddotes
  9. "  US Reg No: 1916230  " , Stati Uniti Patent and Trademark Office (accessibile il 1 ° aprile 2006 )
  10. Sébastien Broca , L' utopia del software libero: dal bricolage informatico alla reinvenzione sociale , Ed. il clandestino,2013( ISBN  978-2-916952-95-6 e 2916952950 , OCLC  867598251 , leggi online )
  11. la cattedrale e il bazar , di Eric S. Raymond.
  12. [PDF] The Linux Foundation, “  Sviluppo del kernel Linux  ” ,2009(consultato il 4 febbraio 2010 )
  13. "  The Linux Kernel Open Source Project: Languages ​​Page  " , su Open Hub (consultato il 30 settembre 2015 )
  14. Open Source: il 75% dei contributori Linux viene pagato su ZDNet
  15. messaggio Linus' sul LKML
  16. rilascio di Linux 2.1.80
  17. Kernel 2.6.16 rilasciato su LinuxFr.org
  18. Kernel 2.6.17 rilasciato su LinuxFr.org
  19. Kernel 2.6.18 rilasciato su LinuxFr.org
  20. Kernel 2.6.19 rilasciato su LinuxFr.org
  21. Kernel 2.6.20 rilasciato su LinuxFr.org
  22. Kernel 2.6.21 rilasciato su LinuxFr.org
  23. Kernel 2.6.22 rilasciato su LinuxFr.org
  24. Kernel 2.6.23 rilasciato su LinuxFr.org
  25. Kernel 2.6.24 rilasciato su LinuxFr.org
  26. Kernel 2.6.25 rilasciato su LinuxFr.org
  27. Kernel 2.6.26 rilasciato su LinuxFr.org
  28. Kernel 2.6.27 rilasciato su LinuxFr.org
  29. Kernel 2.6.28 rilasciato su LinuxFr.org
  30. Kernel 2.6.29 rilasciato su LinuxFr.org
  31. Kernel 2.6.30 rilasciato su LinuxFr.org
  32. Kernel 2.6.31 rilasciato su LinuxFr.org
  33. Kernel 2.6.32 rilasciato su LinuxFr.org
  34. Kernel 2.6.33 rilasciato su LinuxFr.org
  35. Kernel 2.6.34 rilasciato su LinuxFr.org
  36. Kernel 2.6.35 rilasciato su LinuxFr.org
  37. Kernel 2.6.36 rilasciato su LinuxFr.org
  38. Kernel 2.6.37 rilasciato su LinuxFr.org
  39. Kernel 2.6.38 rilasciato su LinuxFr.org
  40. Kernel 2.6.39 rilasciato su LinuxFr.org
  41. Rilasciato il kernel Linux 3.0  " , su linuxfr.org ,22 luglio 2011(consultato il 22 aprile 2015 )
  42. Rilasciato il kernel Linux 3.1  " , su linuxfr.org ,24 ottobre 2011(consultato il 22 aprile 2015 )
  43. Rilasciato il kernel Linux 3.2  " , su linuxfr.org ,5 gennaio 2012(consultato il 22 aprile 2015 )
  44. Rilasciato il kernel Linux 3.3  " , su linuxfr.org ,19 marzo 2012(consultato il 22 aprile 2015 )
  45. Rilasciato il kernel Linux 3.4  " , su linuxfr.org ,21 maggio 2015(consultato il 22 aprile 2015 )
  46. Rilasciato il kernel Linux 3.5  " , su linuxfr.org ,22 luglio 2012(consultato il 22 aprile 2015 )
  47. Rilasciato il kernel Linux 3.6  " , su linuxfr.org ,1 ° ottobre 2012(consultato il 22 aprile 2015 )
  48. Rilasciato il kernel Linux 3.7  " , su linuxfr.org ,11 dicembre 2012(consultato il 22 aprile 2015 )
  49. Rilasciato il kernel Linux 3.8  " , su linuxfr.org ,19 febbraio 2015(consultato il 22 aprile 2015 )
  50. Rilasciato il kernel Linux 3.9  " , su linuxfr.org ,29 aprile 2013(consultato il 22 aprile 2015 )
  51. Rilasciato il kernel Linux 3.10  " , su linuxfr.org ,3 luglio 2013(consultato il 22 aprile 2015 )
  52. Rilasciato il kernel Linux 3.11  " , su linuxfr.org ,3 settembre 2013(consultato il 22 aprile 2015 )
  53. Rilasciato il kernel Linux 3.12  " , su linuxfr.org ,6 novembre 2013(consultato il 22 aprile 2015 )
  54. Rilasciato il kernel Linux 3.13  " , su linuxfr.org ,21 gennaio 2015(consultato il 22 aprile 2015 )
  55. (in) "  Linux 3.14 AMD's Recording Cryptographic Coprocessor - Phoronix  " su phoronix.com (consultato il 24 febbraio 2021 ) .
  56. Rilasciato il kernel Linux 3.14  " , su linuxfr.org
  57. Rilasciato il kernel Linux 3.15  " , su linuxfr.org ,12 giugno 2014(consultato il 22 aprile 2015 )
  58. Rilasciato il kernel Linux 3.16  " , su linuxfr.org ,7 agosto 2014(consultato il 22 aprile 2015 )
  59. Rilasciato il kernel Linux 3.17  " , su linuxfr.org ,13 ottobre 2014(consultato il 22 aprile 2015 )
  60. Rilasciato il kernel Linux 3.18  " , su linuxfr.org ,17 dicembre 2014(consultato il 22 aprile 2015 )
  61. Rilasciato il kernel Linux 3.19  " , su linuxfr.org ,16 febbraio 2015(consultato il 22 aprile 2015 )
  62. Rilasciato il kernel Linux 4.0  " , su linuxfr.org ,22 aprile 2015(consultato il 22 aprile 2015 )
  63. "  Rilasciato il kernel Linux 4.1 - LinuxFr.org  " , su linuxfr.org (consultato il 26 luglio 2015 )
  64. "  Rilasciato il kernel Linux 4.2 - LinuxFr.org  " , su linuxfr.org (consultato il 17 settembre 2015 )
  65. (in) "  Rilasciato kernel Linux 4.4 - kernelnewbies.org  "
  66. "  Rilasciato il kernel Linux 4.5 - LinuxFr.org  " , su linuxfr.org (accesso 20 aprile 2016 )
  67. "  Rilasciato il kernel Linux 4.6 - LinuxFr.org  " , su linuxfr.org (consultato il 6 giugno 2016 )
  68. “  Rilasciato il kernel Linux 4.7 - LinuxFr.org  ” , su linuxfr.org (consultato il 28 settembre 2016 )
  69. "  Rilasciato il kernel Linux 4.8 - LinuxFr.org  " , su linuxfr.org (consultato il 16 dicembre 2016 )
  70. "  Rilasciato il kernel Linux 4.9 - LinuxFr.org  " , su linuxfr.org (consultato l'8 febbraio 2017 )
  71. "  Rilasciato il kernel Linux 4.10 - LinuxFr.org  " , su linuxfr.org (consultato l'8 febbraio 2017 )
  72. "  Rilasciato il kernel Linux 4.11 - LinuxFr.org  " , su linuxfr.org (consultato il 26 giugno 2020 )
  73. "  Linux_4.12 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  74. "  Linux_4.13 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  75. "  Linux_4.14 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  76. "  Linux_4.15 - Linux Kernel Newbies  " , su kernelnewbies.org (accesso al 24 febbraio 2021 ) .
  77. "  Linux_4.16 - Linux Kernel Newbies  " , su kernelnewbies.org (accesso al 24 febbraio 2021 ) .
  78. "  Linux_4.17 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  79. "  Linux_4.18 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  80. "  Linux_4.19 - Linux Kernel Newbies  " , su kernelnewbies.org (consultato il 24 febbraio 2021 ) .
  81. "  Linux_4.20 - Linux Kernel Newbies  " , su kernelnewbies.org (accessibile il 24 febbraio 2021 ) .
  82. “  Rilasciato il kernel Linux 5.0 - LinuxFr.org  ” , su linuxfr.org (accesso al 24 febbraio 2021 ) .
  83. “  Rilasciato il kernel Linux 5.1 - LinuxFr.org  ” , su linuxfr.org (accesso al 24 febbraio 2021 ) .
  84. http://lkml.iu.edu/hypermail/linux/kernel/1907.0/05444.html
  85. https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/
  86. https://lore.kernel.org/lkml/CAHk-=wjmzaD=BZ1hjUYu+RTnSGDLfCRwCdg99GeQpCjEwo9uzw@mail.gmail.com/
  87. https://lore.kernel.org/lkml/CAHk-=wigRZ6TSJU09bMk3Df2DiOw83B7TrQUq+iXroQCK5EVAQ@mail.gmail.com/
  88. https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/
  89. https://lore.kernel.org/lkml/CAHk-=wiZGrCkiBB1V7bxp8NZH6yWi9mPM4ptMW16OzOiNprBFA@mail.gmail.com/
  90. https://lore.kernel.org/lkml/CAHk-=wj+mDPbj8hXspXRAksh+1TmPjubc9RNEbu8EVpYyypX=w@mail.gmail.com/
  91. https://lore.kernel.org/lkml/CAHk-=wi-u86++np80GQvgDuARdt9xpBNho6SjHLmYgm8jibGag@mail.gmail.com/
  92. https://lore.kernel.org/lkml/CAHk-=whCKhxNyKn1Arut8xUDKTwp3fWcCj_jbL5dbzkUmo45gQ@mail.gmail.com/
  93. https://lore.kernel.org/lkml/CAHk-=wg8LpRi9+P2_V+ehJ2_EoJifNh2QmVf47aLXfkCd-1UAQ@mail.gmail.com/
  94. distribuzione Linux kernel
  95. "NOTA! Detesto il modello SCM centralizzato" Messaggio da Torvalds sulla mailing list del kernel
  96. Linux Torvalds, “  Kernel SCM saga ..  ” , ,2005(consultato il 5 novembre 2009 )
  97. (in) Mailing List del kernel Linux, "  Linux 2.6.12  " ,17 giugno 2005
  98. "  Graph on Top500.org  " ( ArchivioWikiwixArchive.isGoogle • Cosa fare? ) (Accesso 30 marzo 2013 )
  99. Linux Journal 1997
  100. Il World Computing 07/07/2005
  101. (in) John P. Mello Jr. Developer Raps Linux Security  " su LinuxInsider ,1 ° gennaio 2005(consultato il 13 gennaio 2013 )
  102. (in) policy verso il sistema LSM grsecurity.net
  103. (in) Articolo di lwn.net sul passaggio in API statica LSM

Appendici

Articoli Correlati

Filmografia

  • Revolution OS , di JTS Moore  (in) 2001
  • Nome in codice: Linux , di Hannu Puttonen, 2002

link esterno