
Linux kernel 4.1.15 codice sorgente con un focus su CVE-2022-45934, che fornisce un riferimento per l'analisi delle vulnerabilità e la ricerca sullo sfruttamento.
Rilascio del kernel Linux 4.x http://kernel.org/
Queste sono le note di rilascio per Linux versione 4. Leggetele attentamente, poiché vi dicono di cosa si tratta, spiegano come installare il kernel e cosa fare se qualcosa va storto.
COS'È LINUX?
Linux è un clone del sistema operativo Unix, scritto da zero da Linus Torvalds con l'assistenza di un gruppo informale di hacker sparsi per la Rete. Mira alla conformità con POSIX e la Single UNIX Specification.
Ha tutte le funzionalità che ci si aspetterebbe da un Unix moderno e completo, incluso il vero multitasking, la memoria virtuale, le librerie condivise, il caricamento a richiesta, gli eseguibili condivisi copy-on-write, una corretta gestione della memoria e il networking multistack, incluso IPv4 e IPv6.
È distribuito sotto la GNU General Public License - vedere il file COPYING allegato per maggiori dettagli.
SU QUALE HARDWARE FUNZIONA?
Sebbene sia stato originariamente sviluppato prima per PC basati su x86 a 32 bit (386 o superiori), oggi Linux funziona anche su (almeno) le architetture Compaq Alpha AXP, Sun SPARC e UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64, AXIS CRIS, Xtensa, Tilera TILE, AVR32 e Renesas M32R.
Linux è facilmente portabile sulla maggior parte delle architetture generiche a 32 o 64 bit, purché abbiano una memory management unit a pagine (PMMU) e un porting del compilatore GNU C (gcc) (parte di The GNU Compiler Collection, GCC). Linux è stato anche portato su alcune architetture senza PMMU, sebbene in tal caso la funzionalità sia ovviamente alquanto limitata. Linux è stato anche portato a se stesso. Ora potete eseguire il kernel come applicazione in spazio utente - questa è chiamata UserMode Linux (UML).
DOCUMENTAZIONE:
C'è molta documentazione disponibile sia in formato elettronico su Internet sia in libri, sia specifica per Linux sia relativa a questioni UNIX generali. Consiglio di cercare nei sottodirectory di documentazione di qualsiasi sito FTP Linux i libri del LDP (Linux Documentation Project). Questo README non è pensato per essere una documentazione del sistema: ci sono fonti molto migliori disponibili.
Ci sono vari file README nel sottodirectory Documentation/: questi contengono tipicamente note di installazione specifiche del kernel per alcuni driver, per esempio. Vedere Documentation/00-INDEX per un elenco di ciò che è contenuto in ogni file. Leggete il file Changes, poiché contiene informazioni sui problemi che potrebbero derivare dall'aggiornamento del kernel.
Il sottodirectory Documentation/DocBook/ contiene diverse guide per sviluppatori e utenti del kernel. Queste guide possono essere generate in un certo numero di formati: PostScript (.ps), PDF, HTML e pagine man, tra gli altri. Dopo l'installazione, "make psdocs", "make pdfdocs", "make htmldocs", o "make mandocs" genererà la documentazione nel formato richiesto.
INSTALLAZIONE dei sorgenti del kernel:
Se installate i sorgenti completi, mettete il tarball del kernel in una directory in cui avete i permessi (es. la vostra home directory) ed estraetelo:
xz -cd linux-4.X.tar.xz | tar xvf -
Sostituite "X" con il numero di versione dell'ultimo kernel.
NON usate l'area /usr/src/linux! Quest'area ha un set (di solito incompleto) di header del kernel che vengono usati dai file header delle librerie. Dovrebbero corrispondere alla libreria e non essere alterati da qualunque kernel-di-turno ci sia.
Potete anche fare l'aggiornamento tra le release 4.x applicando le patch. Le patch sono distribuite nel formato xz. Per installare applicando le patch, procuratevi tutti i file di patch più recenti, entrate nella directory di livello superiore del sorgente del kernel (linux-4.X) ed eseguite:
xz -cd ../patch-4.x.xz | patch -p1
Sostituite "x" con tutte le versioni successive alla versione "X" del vostro albero dei sorgenti attuale, in_ordine, e dovreste essere a posto. Potreste voler rimuovere i file di backup (some-file-name~ o some-file-name.orig) e assicurarvi che non ci siano patch fallite (some-file-name# o some-file-name.rej). Se ce ne sono, o avete sbagliato voi o ho sbagliato io.
A differenza delle patch per i kernel 4.x, le patch per i kernel 4.x.y (detti anche kernel -stable) non sono incrementali ma si applicano direttamente al kernel 4.x base. Per esempio, se il vostro kernel base è 4.0 e volete applicare la patch 4.0.3, non dovete prima applicare le patch 4.0.1 e 4.0.2. Analogamente, se state eseguendo la versione 4.0.2 del kernel e volete passare alla 4.0.3, dovete prima invertire la patch 4.0.2 (cioè, patch -R) prima di applicare la patch 4.0.3. Potete leggere di più su questo in Documentation/applying-patches.txt
In alternativa, lo script patch-kernel può essere usato per automatizzare questo processo. Determina la versione corrente del kernel e applica tutte le patch trovate.
linux/scripts/patch-kernel linux
Il primo argomento nel comando sopra è la posizione del sorgente del kernel. Le patch vengono applicate dalla directory corrente, ma una directory alternativa può essere specificata come secondo argomento.
Assicuratevi di non avere file .o obsoleti e dipendenze in giro:
cd linux make mrproper
A questo punto dovreste avere i sorgenti installati correttamente.
REQUISITI SOFTWARE
La compilazione e l'esecuzione dei kernel 4.x richiede versioni aggiornate di vari pacchetti software. Consultate Documentation/Changes per i numeri di versione minimi richiesti e su come ottenere gli aggiornamenti di questi pacchetti. Attenzione: usare versioni eccessivamente vecchie di questi pacchetti può causare errori indiretti molto difficili da rintracciare, quindi non date per scontato di poter semplicemente aggiornare i pacchetti quando sorgono problemi evidenti durante la build o il funzionamento.
Directory BUILD per il kernel:
Quando compilate il kernel, tutti i file di output saranno per impostazione predefinita memorizzati insieme al codice sorgente del kernel. Usando l'opzione "make O=output/dir" potete specificare una posizione alternativa per i file di output (incluso .config). Esempio:
kernel source code: /usr/src/linux-4.X
build directory: /home/name/build/kernel
Per configurare e compilare il kernel, usate:
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install
Nota: se viene usata l'opzione 'O=output/dir', allora deve essere usata per tutte le invocazioni di make.
CONFIGURAZIONE del kernel:
Non saltate questo passaggio anche se state solo aggiornando una versione minore. In ogni release vengono aggiunte nuove opzioni di configurazione e compariranno strani problemi se i file di configurazione non sono impostati come previsto. Se volete portare la vostra configurazione esistente a una nuova versione con il minimo sforzo, usate "make oldconfig", che vi chiederà solo le risposte alle nuove domande.
I comandi di configurazione alternativi sono:
"make config" Interfaccia a testo semplice.
"make menuconfig" Menu colorati basati su testo, elenchi radio e finestre di dialogo.
"make nconfig" Menu colorati basati su testo potenziati.
"make xconfig" Strumento di configurazione basato su X windows (Qt).
"make gconfig" Strumento di configurazione basato su X windows (Gtk).
"make oldconfig" Imposta come predefinite tutte le domande basandosi sul contenuto del vostro file ./.config esistente e chiede informazioni sui nuovi simboli di configurazione.