LKN: Procurarsi i Sorgenti del Kernel: differenze tra le versioni
m (link indice) |
m (link) |
||
(16 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{LKN}} | |||
Quando si | Quando si compila un kernel personalizzato ci si vorrebbe servire dell'ultima versione stabile. Molte distribuzioni forniscono i loro pacchetti dei sorgenti del kernel, ma raramente questi sono i più recenti e aggiornati. I pacchetti ufficiali delle distribuzioni hanno il vantaggio di essere compatibili con il compilatore e gli altri strumenti forniti dalla distribuzione stessa (Il capitolo 2 mette in evidenza l'importanza di questa compatibilità), ma non è detto che permettano di avere le funzionalità o le prestazioni di cui si ha bisogno. Preparando l'ambiente con il kernel più recente e le ultime versioni del compilatore e degli altri programmi sarà possibile ottenere esattamente ciò che si vuole. Questo capitolo spiega quali sorgenti del kernel scaricare e dove trovarli. | ||
=='''Quale ramo usare'''== | =='''Quale ramo usare'''== | ||
[[Immagine:kernel_releases.png|300px|thumb|Figura 3-1: Ciclo di sviluppo e rilascio del kernel]] | |||
In passato il kernel Linux era diviso in 2 rami: quello di "sviluppo" e quello "stabile". Per distinguerli, il ramo di sviluppo era contrassegnato da un valore dispari nel secondo numero di release, quello stabile da un valore pari. Ad esempio, la 2.5.25 era una versione di sviluppo, mentre la 2.4.25 era la stabile. | In passato il kernel Linux era diviso in 2 rami: quello di "sviluppo" e quello "stabile". Per distinguerli, il ramo di sviluppo era contrassegnato da un valore dispari nel secondo numero di release, quello stabile da un valore pari. Ad esempio, la 2.5.25 era una versione di sviluppo, mentre la 2.4.25 era la stabile. | ||
Quando fu creata la serie 2.6, gli sviluppatori decisero di abbandonare questo metodo basato su due rami separati e annunciarono che tutti i rilasci della serie 2.6 del kernel sarebbero stati considerati "stabili", indipendentemente da quanto veloce fosse stato il processo di sviluppo. I pochi mesi a disposizione tra le versioni maggiori della serie 2.6 avrebbero lasciato agli sviluppatori il tempo necessario per aggiungere nuove funzioni e renderle stabili per il rilascio successivo. Assieme a questo fu creato un ramo "-stabile" del kernel per permettere eventuali correzioni dei bug e aggiornamenti di sicurezza per l'ultima versione, prima che quella nuova venga rilasciata. | Quando fu creata la serie 2.6, gli sviluppatori decisero di abbandonare questo metodo basato su due rami separati e annunciarono che tutti i rilasci della serie 2.6 del kernel sarebbero stati considerati "stabili", indipendentemente da quanto veloce fosse stato il processo di sviluppo. I pochi mesi a disposizione tra le versioni maggiori della serie 2.6 avrebbero lasciato agli sviluppatori il tempo necessario per aggiungere nuove funzioni e renderle stabili per il rilascio successivo. Assieme a questo fu creato un ramo "-stabile" del kernel per permettere eventuali correzioni dei bug e aggiornamenti di sicurezza per l'ultima versione, prima che quella nuova venga rilasciata. | ||
Alcuni esempi, illustrati in figura 3-1, aiuteranno a chiarire tutto questo: il team del kernel rilascia la versione stabile 2.6.17; poi gli sviluppatori iniziano a lavorare su nuove caratteristiche e rilasciano la versione -rc del kernel in via di sviluppo, in modo che chi vuole possa aiutare nella fase di test e di debug dei cambiamenti. Quando tutti concordano sul fatto che la versione in via di sviluppo sia abbastanza stabile, questa viene rilasciata come 2.6.18. L'intero ciclo impiega solitamente due o tre mesi, dipendendo da svariati fattori. | Alcuni esempi, illustrati in [[:Immagine:kernel_releases.png|figura 3-1]], aiuteranno a chiarire tutto questo: il team del kernel rilascia la versione stabile 2.6.17; poi gli sviluppatori iniziano a lavorare su nuove caratteristiche e rilasciano la versione -rc del kernel in via di sviluppo, in modo che chi vuole possa aiutare nella fase di test e di debug dei cambiamenti. Quando tutti concordano sul fatto che la versione in via di sviluppo sia abbastanza stabile, questa viene rilasciata come 2.6.18. L'intero ciclo impiega solitamente due o tre mesi, dipendendo da svariati fattori. | ||
Durante lo sviluppo di nuove funzioni vengono rilasciate la 2.6.17.2, la 2.6.17.3 e altre release stabili del kernel, contenenti correzioni di bug e aggiornamenti di sicurezza. | Durante lo sviluppo di nuove funzioni vengono rilasciate la 2.6.17.2, la 2.6.17.3 e altre release stabili del kernel, contenenti correzioni di bug e aggiornamenti di sicurezza. | ||
Riga 16: | Riga 15: | ||
=='''Dove trovare i sorgenti del kernel'''== | =='''Dove trovare i sorgenti del kernel'''== | ||
Tutti i sorgenti del kernel Linux si possono trovare in ognuno dei siti kernel.org, una rete di mirror che permette a chiunque di trovare il server locale più vicino. Questo fa sì che i server principali possano rispondere più prontamente ai mirror e che gli utenti riescano a scaricare i file il più velocemente possibile. | |||
La pagina principale di http://www.kernel.org riporta tutte le versioni correnti del kernel per ogni differente ramo, come mostrato in [[:Immagine:kernel.org.png|figura 3-2]]. | |||
[[Immagine:kernel.org.png|center|500px|thumb|Figura 3-2: Il sito ufficiale Kernel.org.]] | |||
Per scaricare l'ultima versione stabile del kernel è sufficiente fare clic sulla lettera F nella riga corrispondente: così facendo si scaricherà l'intero albero dei sorgenti. Altrimenti è possibile accedere alla sottocartella relativa ad ogni versione della serie 2.6 tramite la pagina http://www.kernel.org/pub/linux/kernel/v2.6/, mostrata in [[:Immagine:Kernel.org.v2.6.png|figura 3-3]]. | |||
[[Immagine:Kernel.org.v2.6.png|center|500px|thumb|Figura 3-3: Directory dei sorgenti per il kernel 2.6]] | |||
È anche possibile scaricare i sorgenti del kernel tramite riga di comando, usando il programma <code>wget</code> o <code>curl</code>, normalmente presenti in ogni distribuzione Linux. | |||
Per scaricare la versione 2.6.17.8 del kernel con <code>wget</code> il comando è: | |||
Per scaricare la versione 2.6.17.8 del kernel con wget il comando è: | |||
<pre>$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz | <pre>$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz | ||
Riga 36: | Riga 38: | ||
Connecting to www.kernel.org|204.152.191.5|:80... connected. | Connecting to www.kernel.org|204.152.191.5|:80... connected. | ||
HTTP request sent, awaiting response... 200 OK | HTTP request sent, awaiting response... 200 OK | ||
Lenght: 51,707,742 (49M) [application/x-gzip] | |||
100%[-------------------------------------->] 51,707,742 35.25k/s | 100%[-------------------------------------->] 51,707,742 35.25k/s | ||
Riga 48: | Riga 48: | ||
18:02:48 (47.12 kB/s) - 'linux-2.6.17.8.tar.gz' saved [51707742/51707742]</pre> | 18:02:48 (47.12 kB/s) - 'linux-2.6.17.8.tar.gz' saved [51707742/51707742]</pre> | ||
Per scaricarla con curl: | Per scaricarla con <code>curl</code>: | ||
<pre>$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \ -o linux-2.6.17.8.tar.gz</pre> | <pre>$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \ -o linux-2.6.17.8.tar.gz</pre> | ||
Il modo più semplice e veloce per scoprire quale sia l'ultima versione del kernel è usare le informazioni disponibili alla pagina http://www.kernel.org/kdist/finger_banner, come mostrato in figura 3-4. | Il modo più semplice e veloce per scoprire quale sia l'ultima versione del kernel è usare le informazioni disponibili alla pagina http://www.kernel.org/kdist/finger_banner, come mostrato in [[:Immagine:Kernel.org.v2.6.png|figura 3-4]]. | ||
[[Immagine:Kernel.org_finger_banner.png|center|500px|thumb|Figura 3-4: Ultima versione del kernel.]] | |||
=='''Cosa fare con i sorgenti'''== | =='''Cosa fare con i sorgenti'''== | ||
Una volta scaricati i sorgenti del kernel appropriati, dove è previsto che vengano messi? È consigliabile creare una directory locale nella propria home chiamata linux per conservare tutti i file dei sorgenti del kernel: | |||
Una volta scaricati i sorgenti del kernel appropriati, dove è previsto che vengano messi? | |||
<pre>$ mkdir ~/linux</pre> | <pre>$ mkdir ~/linux</pre> | ||
Spostate il codice sorgente nella directory linux: | Spostate il codice sorgente nella directory linux: | ||
<pre>$ mv ~/linux-2.6. | <pre>$ mv ~/linux-2.6.17.8.tar.gz ~/linux/</pre> | ||
ed entrate nella directory linux: | ed entrate nella directory linux: | ||
Riga 70: | Riga 69: | ||
<pre>$ cd ~/linux | <pre>$ cd ~/linux | ||
$ ls | $ ls | ||
linux-2.6. | linux-2.6.17.8.tar.gz</pre> | ||
Adesso che il codice sorgente si trova nella directory giusta, decomprimetelo: | Adesso che il codice sorgente si trova nella directory giusta, decomprimetelo: | ||
<pre>$ tar -xzvf linux-2.6. | <pre>$ tar -xzvf linux-2.6.17.8.tar.gz</pre> | ||
Lo schermo si riempirà della lista dei file che verranno decompressi, e alla fine nella directory linux/ rimarrà: | Lo schermo si riempirà della lista dei file che verranno decompressi, e alla fine nella directory linux/ rimarrà: | ||
<pre>$ ls | <pre>$ ls | ||
linux-2.6. | linux-2.6.17.8.tar.gz | ||
linux-2.6. | linux-2.6.17.8/</pre> | ||
---- | |||
This is an indipendent translation of the book [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] by [http://www.kroah.com/log/ Greg Kroah-Hartman]. This translation (like the original work) is available under the terms of [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5]. | |||
---- | |||
[http://files.kroah.com/lkn/lkn_pdf/ch03.pdf ''Capitolo originale''] | |||
[[Categoria:Documentazione tecnica]] | |||
[[Categoria:Linux Kernel in a Nutshell]] |
Versione attuale delle 12:38, 14 mag 2016
Linux Kernel in a Nutshell |
Sommario |
|
Quando si compila un kernel personalizzato ci si vorrebbe servire dell'ultima versione stabile. Molte distribuzioni forniscono i loro pacchetti dei sorgenti del kernel, ma raramente questi sono i più recenti e aggiornati. I pacchetti ufficiali delle distribuzioni hanno il vantaggio di essere compatibili con il compilatore e gli altri strumenti forniti dalla distribuzione stessa (Il capitolo 2 mette in evidenza l'importanza di questa compatibilità), ma non è detto che permettano di avere le funzionalità o le prestazioni di cui si ha bisogno. Preparando l'ambiente con il kernel più recente e le ultime versioni del compilatore e degli altri programmi sarà possibile ottenere esattamente ciò che si vuole. Questo capitolo spiega quali sorgenti del kernel scaricare e dove trovarli.
Quale ramo usare
In passato il kernel Linux era diviso in 2 rami: quello di "sviluppo" e quello "stabile". Per distinguerli, il ramo di sviluppo era contrassegnato da un valore dispari nel secondo numero di release, quello stabile da un valore pari. Ad esempio, la 2.5.25 era una versione di sviluppo, mentre la 2.4.25 era la stabile.
Quando fu creata la serie 2.6, gli sviluppatori decisero di abbandonare questo metodo basato su due rami separati e annunciarono che tutti i rilasci della serie 2.6 del kernel sarebbero stati considerati "stabili", indipendentemente da quanto veloce fosse stato il processo di sviluppo. I pochi mesi a disposizione tra le versioni maggiori della serie 2.6 avrebbero lasciato agli sviluppatori il tempo necessario per aggiungere nuove funzioni e renderle stabili per il rilascio successivo. Assieme a questo fu creato un ramo "-stabile" del kernel per permettere eventuali correzioni dei bug e aggiornamenti di sicurezza per l'ultima versione, prima che quella nuova venga rilasciata. Alcuni esempi, illustrati in figura 3-1, aiuteranno a chiarire tutto questo: il team del kernel rilascia la versione stabile 2.6.17; poi gli sviluppatori iniziano a lavorare su nuove caratteristiche e rilasciano la versione -rc del kernel in via di sviluppo, in modo che chi vuole possa aiutare nella fase di test e di debug dei cambiamenti. Quando tutti concordano sul fatto che la versione in via di sviluppo sia abbastanza stabile, questa viene rilasciata come 2.6.18. L'intero ciclo impiega solitamente due o tre mesi, dipendendo da svariati fattori.
Durante lo sviluppo di nuove funzioni vengono rilasciate la 2.6.17.2, la 2.6.17.3 e altre release stabili del kernel, contenenti correzioni di bug e aggiornamenti di sicurezza. È consigliabile che chi intenda usare l'ultima versione del kernel per lavoro si serva di quella stabile. Chi invece intende aiutare gli sviluppatori, può testare le caratteristiche della generazione successiva del kernel e darne una valutazione. Per quanto concerne gli scopi di questo capitolo, si suppone che venga utilizzata la versione stabile.
Dove trovare i sorgenti del kernel
Tutti i sorgenti del kernel Linux si possono trovare in ognuno dei siti kernel.org, una rete di mirror che permette a chiunque di trovare il server locale più vicino. Questo fa sì che i server principali possano rispondere più prontamente ai mirror e che gli utenti riescano a scaricare i file il più velocemente possibile.
La pagina principale di http://www.kernel.org riporta tutte le versioni correnti del kernel per ogni differente ramo, come mostrato in figura 3-2.
Per scaricare l'ultima versione stabile del kernel è sufficiente fare clic sulla lettera F nella riga corrispondente: così facendo si scaricherà l'intero albero dei sorgenti. Altrimenti è possibile accedere alla sottocartella relativa ad ogni versione della serie 2.6 tramite la pagina http://www.kernel.org/pub/linux/kernel/v2.6/, mostrata in figura 3-3.
È anche possibile scaricare i sorgenti del kernel tramite riga di comando, usando il programma wget
o curl
, normalmente presenti in ogni distribuzione Linux.
Per scaricare la versione 2.6.17.8 del kernel con wget
il comando è:
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz -> 'linux-2.6.17.8.tar.gz Resolving www.kernel.org... 204.152.191.5, 204.152.191.37 Connecting to www.kernel.org|204.152.191.5|:80... connected. HTTP request sent, awaiting response... 200 OK Lenght: 51,707,742 (49M) [application/x-gzip] 100%[-------------------------------------->] 51,707,742 35.25k/s ETA 00:00 18:02:48 (47.12 kB/s) - 'linux-2.6.17.8.tar.gz' saved [51707742/51707742]
Per scaricarla con curl
:
$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \ -o linux-2.6.17.8.tar.gz
Il modo più semplice e veloce per scoprire quale sia l'ultima versione del kernel è usare le informazioni disponibili alla pagina http://www.kernel.org/kdist/finger_banner, come mostrato in figura 3-4.
Cosa fare con i sorgenti
Una volta scaricati i sorgenti del kernel appropriati, dove è previsto che vengano messi? È consigliabile creare una directory locale nella propria home chiamata linux per conservare tutti i file dei sorgenti del kernel:
$ mkdir ~/linux
Spostate il codice sorgente nella directory linux:
$ mv ~/linux-2.6.17.8.tar.gz ~/linux/
ed entrate nella directory linux:
$ cd ~/linux $ ls linux-2.6.17.8.tar.gz
Adesso che il codice sorgente si trova nella directory giusta, decomprimetelo:
$ tar -xzvf linux-2.6.17.8.tar.gz
Lo schermo si riempirà della lista dei file che verranno decompressi, e alla fine nella directory linux/ rimarrà:
$ ls linux-2.6.17.8.tar.gz linux-2.6.17.8/
This is an indipendent translation of the book Linux Kernel in a Nutshell by Greg Kroah-Hartman. This translation (like the original work) is available under the terms of Creative Commons Attribution-ShareAlike 2.5.