LKN: Introduzione: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(finito, da revisionare)
m (link)
 
(15 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{stub}}
{{LKN}}
Nonostante la sua grande base di codice (oltre sette milioni di linee di codice), il kernel Linux è il sistema operativo più flessibile che sia mai stato creato.
Può essere messo a punto per una grande varietà di sistemi differenti e funzionare su qualunque cosa, da un modello di elicottero radio-comandato, a un telefono cellulare, alla maggior parte dei più grandi supercalcolatori nel mondo.
Adattando il kernel a un ambiente specifico, è possibile creare qualcosa che sia contemporaneamente più piccolo e più veloce del kernel fornito dalla gran parte delle distribuzioni di Linux. Questo libro entrerà nel come costruire e installare un kernel personalizzato, e fornirà qualche spunto su come abilitare opzioni specifiche che probabilmente vorrete usare per specifiche situazioni.


==Introduzione==
Nessuna distribuzione di Linux fornisce esattamente il kernel che gran parte dei suoi utenti vuole. Le distribuzioni moderne sono diventate molto accomodanti, compilando il supporto per ogni periferica conosciuta, per l'audio, e anche per il risparmio energetico.
Ma probabilmente ognuno di voi ha necessità differenti dalla maggioranza degli utenti (e ogni distribuzione deve cercare ad andare incontro alle necessità della maggioranza).
Voi potreste semplicemente avere un hardware differente.
E quando esce un nuovo kernel potreste voler iniziare ad usarlo senza aspettare che una distribuzione venga costruita attorno ad esso.


[http://user-mode-linux.sourceforge.net/ User Mode Linux(UML)] e' un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si puo mettere mano alle parti piu "intime" di un sistema linux senza intaccare il sistema che realmente sta girando sulla macchina.
Per un certo numero di ragioni, durante il vostro cammino con Linux, qualche volta potreste voler compilare un kernel, o mettere a punto i parametri di quello che state utilizzando.
Questo libro vi fornisce le informazioni necessarie per comprendere il kernel dal punto di vista dell'utente, e per effettuare i cambiamenti più comuni.


UML fornisce una macchina virtuale che puo avere piu risorse fisiche e programmi virtualizzati della macchina|sistema reale. Lo spazio disco delle macchine virtuali sono contenuti in singoli file sul disco fisso.
Ci sono anche delle buone ragioni per rimuovere alcune caratteristiche da un kernel, in particolare se lo fate funzionare in un sistema embedded o in uno con uno ''small form factor'' (piccolo fattore di forma, cioè dalle risorse limitate, N.d.T.)


Si puo assegnare alla macchina virtuale solo l'hardware di cui si abbia bisogno. Con accessi limitati, niente di cio che gira sulla macchina virtuale puo' cambiare o danneggiare il sistema fisico reale o il suo software.
Nel mettere a punto, è utile comprendere le motivazioni intime del comportamento del kernel.
Queste sono al di là dello scopo di questo libro, eccetto brevi sommari che appaiono con certe opzioni.
L'appendice B include riferimenti ad altri libri e a materiale che può fornirvi maggiori basi.


{{Box | Note |Il tutto e' stato eseguito su '''testing/etch'''. Da adesso in poi mi riferiro a ''user mode linux'' con il nome '''UML''', alla macchina fisica con il nome ''host'' e alla macchina virtuale con  ''ospite''}}


==Installazione==
'''Usare questo libro'''


Per avere UML all'opera dobbiamo ricompilare il kernel con la '''SKAS'''( ''Separate Kernel Address Space'') patch che si trova gia sui repository:


<pre>
[[Image:Cesoia.png|left]] Non configurate n&eacute; compilate il vostro kernel con i permessi di superutente!
apt-get install linux-patch-skas
cd /usr/src/linux
make-kpkg clean
make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image
</pre>


In "''Processor type and feature''" troverete due opzioni in piu':


<pre>
Questo avvertimento è la cosa più importante da ricordare percorrendo i passaggi di questo libro. Ogni cosa in questo libro - scaricare il codice sorgente del kernel, decomprimerlo, configurare il kernel e compilarlo - dovrebbe essere fatta come utente comune del sistema.
[ ] /proc/mm support
Solo i due o tre comandi necessari per installare un nuovo kernel dovrebbero essere impartiti come superutente (''root'').
[ ] Make UML childs /proc/<pid> completely browsable
</pre>


Settateli e compilate il kernel, alla fine della compilazione installate il pacchetto e riavviate.
Ci sono stati bug nel processo di costruzione del kernel, nel passato, che causavano la cancellazione di qualche file speciale nella directory ''/dev'' se l'utente aveva i permessi da superutente durante la compilazione del kernel Linux. Ci sono anche problemi che possono facilmente insorgere decomprimendo il kernel Linux con diritti di superutente, poiché qualche file nel pacchetto dei sorgenti del kernel non finirà per avere i permessi adeguati e causerà errori di compilazione più avanti.


Una volta riavviato installiamo alcuni software:
Il codice sorgente del kernel, inoltre, non dovrebbe essere mai posto nella directory ''/usr/src/linux/'', poiché quella è la posizione del kernel con cui sono state compilate le librerie di sistema, non del vostro kernel personalizzato. Non effettuate neppure alcun tipo di sviluppo del kernel nella directory ''/usr/src/'', ma fatelo solo nella vostra directory da utente locale, dove non può accadere nulla di male al sistema.


<pre>
apt-get source user-mode-linux # da utente
apt-get install user-mode-linux-doc uml-utilities
</pre>


Il pacchetto user-mode-linux contiene i sorgenti del kernel patchati per  diventare degli eseguibili UML.
----
User mode linux ha bisogno di un kernel modificato e patchato per essere eseguibile dall'utente(user-space).
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].
Il kernel che risiede su host sara' un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs( il kernel di default e' un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).
----


Da '''/usr/share/doc/user-mode-linux/README.Debian''':


Compilare un pacchetto kernel UML.
[http://files.kroah.com/lkn/lkn_pdf/ch01.pdf ''Capitolo originale'']


Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.
[[Categoria:Documentazione tecnica]]
(esempio deb-src http://it.debian.org/debian main contrib, man sources.list)
[[Categoria:Linux Kernel in a Nutshell]]
 
<pre>
$ apt-get source user-mode-linux
</pre>
 
Puoi farlo con fakeroot la doc originale e' sbagliata ;D provare per credere
<pre>
cd user-mode-linux-UMLVERSION
debian/rules unpack
</pre>
 
Oppure, decomprimi un'altro sorgente e aggiorna kernel_version in
debian/rules
<pre>
debian/rules patch
</pre>
 
Oppure, applica UML patch a mano e aggiusta patch-stamp
<pre>
cd kernel-source-KVERSION
</pre>
 
Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.
<pre>
make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um
</pre>
 
Tutti i comandi makefile devono includere ARCH=um
<pre>
cd ..
dpkg-buildpackage -rfakeroot -nc -uc
</pre>
 
Bene ora siete pronti a instrallarlo
<pre>
dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb
</pre>
 
Avete la possibilita di montare lo stesso sistema con host fs.

Versione attuale delle 12:36, 14 mag 2016

Linux Kernel in a Nutshell

Sommario

Parte I
Compilare il kernel
  1. Introduzione
  2. Requisiti
  3. Procurarsi i sorgenti
  4. Configurazione e compilazione
  5. Installazione e avvio
  6. Aggiornare il kernel
Parte II
Personalizzazioni principali
  1. Personalizzare un kernel
  2. Ricette per configurare un kernel
Parte III
Guide di riferimento per il kernel
  1. Guida di riferimento dei parametri di boot del kernel - parte1
  2. Guida di riferimento dei parametri di boot del kernel - parte2
  3. Guida di riferimento dei parametri di compilazione del kernel
  4. Guida di riferimento delle opzioni di configurazione del kernel - parte1
  5. Guida di riferimento delle opzioni di configurazione del kernel - parte2
Parte IV
Informazioni aggiuntive
  1. Programmi utili
  2. Bibliografia

Nonostante la sua grande base di codice (oltre sette milioni di linee di codice), il kernel Linux è il sistema operativo più flessibile che sia mai stato creato. Può essere messo a punto per una grande varietà di sistemi differenti e funzionare su qualunque cosa, da un modello di elicottero radio-comandato, a un telefono cellulare, alla maggior parte dei più grandi supercalcolatori nel mondo. Adattando il kernel a un ambiente specifico, è possibile creare qualcosa che sia contemporaneamente più piccolo e più veloce del kernel fornito dalla gran parte delle distribuzioni di Linux. Questo libro entrerà nel come costruire e installare un kernel personalizzato, e fornirà qualche spunto su come abilitare opzioni specifiche che probabilmente vorrete usare per specifiche situazioni.

Nessuna distribuzione di Linux fornisce esattamente il kernel che gran parte dei suoi utenti vuole. Le distribuzioni moderne sono diventate molto accomodanti, compilando il supporto per ogni periferica conosciuta, per l'audio, e anche per il risparmio energetico. Ma probabilmente ognuno di voi ha necessità differenti dalla maggioranza degli utenti (e ogni distribuzione deve cercare ad andare incontro alle necessità della maggioranza). Voi potreste semplicemente avere un hardware differente. E quando esce un nuovo kernel potreste voler iniziare ad usarlo senza aspettare che una distribuzione venga costruita attorno ad esso.

Per un certo numero di ragioni, durante il vostro cammino con Linux, qualche volta potreste voler compilare un kernel, o mettere a punto i parametri di quello che state utilizzando. Questo libro vi fornisce le informazioni necessarie per comprendere il kernel dal punto di vista dell'utente, e per effettuare i cambiamenti più comuni.

Ci sono anche delle buone ragioni per rimuovere alcune caratteristiche da un kernel, in particolare se lo fate funzionare in un sistema embedded o in uno con uno small form factor (piccolo fattore di forma, cioè dalle risorse limitate, N.d.T.)

Nel mettere a punto, è utile comprendere le motivazioni intime del comportamento del kernel. Queste sono al di là dello scopo di questo libro, eccetto brevi sommari che appaiono con certe opzioni. L'appendice B include riferimenti ad altri libri e a materiale che può fornirvi maggiori basi.


Usare questo libro


Cesoia.png

Non configurate né compilate il vostro kernel con i permessi di superutente!


Questo avvertimento è la cosa più importante da ricordare percorrendo i passaggi di questo libro. Ogni cosa in questo libro - scaricare il codice sorgente del kernel, decomprimerlo, configurare il kernel e compilarlo - dovrebbe essere fatta come utente comune del sistema. Solo i due o tre comandi necessari per installare un nuovo kernel dovrebbero essere impartiti come superutente (root).

Ci sono stati bug nel processo di costruzione del kernel, nel passato, che causavano la cancellazione di qualche file speciale nella directory /dev se l'utente aveva i permessi da superutente durante la compilazione del kernel Linux. Ci sono anche problemi che possono facilmente insorgere decomprimendo il kernel Linux con diritti di superutente, poiché qualche file nel pacchetto dei sorgenti del kernel non finirà per avere i permessi adeguati e causerà errori di compilazione più avanti.

Il codice sorgente del kernel, inoltre, non dovrebbe essere mai posto nella directory /usr/src/linux/, poiché quella è la posizione del kernel con cui sono state compilate le librerie di sistema, non del vostro kernel personalizzato. Non effettuate neppure alcun tipo di sviluppo del kernel nella directory /usr/src/, ma fatelo solo nella vostra directory da utente locale, dove non può accadere nulla di male al sistema.



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.



Capitolo originale