LKN: Programmi Utili: differenze tra le versioni

m
add patch e diff
(Avvio traduzione)
m (add patch e diff)
Riga 1: Riga 1:
''Inserire qui la traduzione di [http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/appa.pdf questo] capitolo...''
__TOC__
 
Molte delle informazioni contenute in questo libro sono state estratte dalla documentazione del kernel e dal codice sorgente. Questa [la documentazione inclusa nel kernel, NdT] � il miglior posto dove trovare informazioni e riferimenti su come compilare e installare il kernel ed � usualmente tenuta aggiornata a seguito di cambiamenti nella procedura di compilazione.
 
== Libri ==
Sono disponibili molti ottimi libri relativi alla programmazione del kernel di Linux, ma solo pochi di essi trattano la compilazione e installazione del kernel. Ecco una lista di libri che ho trovato utili.
 
=== Libri generici su Linux ===
 
* Ellen Siever,Aaron Weber,Stephen Figgins,Robert Love,and Arnold Robbins. ''Linux in a Nutshell'' (O�Reilly), 2005.<br/>Questo libro comprende una delle pi� complete e autorevoli guide ai comandi per Linux. Essa copre praticamente ogni singolo comando di cui potreste mai aver bisogno.
 
* Yaghmour, Karim. ''Building Embedded Linux Systems'' (O�Reilly), 2003.<br/>Questo libro, sebben principalmente rivolto agli sviluppatori di sistemi Linx embedded, contiene un'ottima sezione relativa a come costruire una ''cross-compiler toolchain'' ed un kernel. Oltre a questa sezione del libro, � raccomandato anche in virt� di altre sezioni che forniscono interessanti informazioni per coloro che vogliono imparare come personalizzare il kernel e il resto del sistema.
 
=== Libri inerenti il kernel di Linux ===
 
Molti di questi libri sono indirizzati ai programmatori interessati ad apprendere come programmare all'interno del kernel. Sono generalmente molto tecnici rispetto a questo libro, ma sono un ottimo punto di partenza se desiderate imparare e capire il codice che controlla il kernel.
 
*Jonathan Corbet,Alessandro Rubini,and Greg Kroah-Hartman. ''Linux Device Drivers'' (O�Reilly), 2005.<br/>Questo libro illustra come differenti ''device driver'' operano e fornisce parecchi esempi applicatici di driver funzionanti. &Egrave; raccomandato a chiunque vuole programmare driver per il kernel. &Egrave; disponibile in rete gratuitamente a questo indirizzo: http://lwn.net/Kernel/LDD3/
 
* Love, Robert. ''Linux Kernel Development'' (Novell Press Publishing), 2005.<br/> Questo libro copre quasi tutti gli aspetti relativi al kernel di Linux, illustrando come tutto opera insieme. Ottimo punto di partenza per iniziare a capire e conoscere le diverse componenti del kernel.
 
* Bovet,Daniel P. and Cesate,Marco. ''Understanding the Linux Kernel'' (O�Reilly), 2005.<br/> Questo libro si addentra negli aspetti relativi la progettazione e implementazione del nucleo del kernel di Linux. Un ottimo riferimento per apprendere e capire gli algoritmi utilizzati nelle diverse porzioni del kernel. Fortemente raccomandato a coloro che vogliono comprendere nel dettaglio come funziona il kernel.
 
== Tool ==
 
In questo libro sono stati menzionati molti utili strumenti. Di seguito, presento una lista dei siti dove � possibile reperire e scaricare tali strumenti.
 
* ''Linux kernel''<br/> http://www.kernel.org e ftp://ftp.kernel.org contiene tutte le versioni del sorgente del kernel. http://www.kernel.org/git/ contiene una lista di tutti i ''git trees'' utilizzati dai diversi sviluppatori del kernel.
 
* ''gcc''<br>http://gcc.gnu.org/ sito principale per tutto ci� che concerne il compilatore GNU C.
 
* ''binutils''<br/>http://www.gnu.org/software/binutils/ � il sito principale dove trovare tutte le informazioni su binutils.
 
* ''make''<br/>http://www.gnu.org/software/make/ � il sito principale dove trovare tutte le informazioni su make.
 
*''util-linux''<br/>http://www.kernel.org/pub/linux/utils/util-linux/ � la directory da dove possono essere scaricate tutte le versioni di util-linux.
 
* ''module-init-tools''<br/>http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/ � la directory da dove possono essere scaricate tutte le versioni di module-init-tools.
 
* ''e2fsprogs''<br/>http://e2fsprogs.sourceforge.net/ � la pagina principale del progetto e2fsprogs.
 
* ''jfsutils''<br/>http://jfs.sourceforge.net/ � la pagina principale del progetto jfsutils.
 
* ''reiserfsprogs''<br/>http://www.namesys.com/download.html � la pagina principale del progetto reiserfsprogs.


* ''xfsprogs''<br/>http://oss.sgi.com/projects/xfs/ la pagina principale del progetto xfsprogs.


__TOC__
* ''quota-tools''<br/>http://sourceforge.net/projects/linuxquota/ � la pagina principale del progetto quota-tools.
 
* ''nfs-utils''<br/>http://nfs.sf.net/ � la pagina principale del progetto nfs-utils.
 
* ''udev''<br/>http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html � la directory da dove possono essere scaricate tutte le versioni di udev.
 
* ''procfs''<br/>http://procps.sourceforge.net/ � la pagina principale del progetto procfs.
 
* ''patchutils''<br/>http://cyberelk.net/tim/patchutils � la directory da dove possono essere scaricate tutte le versioni di patchutils.
 
* ''git''<br/>http://git.or.cz/ � il sito principale del progetto git.
 
* ''ketchup''<br/>http://www.selenic.com/ketchup/ � la pagina principale del progetto ketchup.
 
* ''quilt''<br/>http://savannah.nongnu.org/projects/quilt � la pagina principale del progetto quilt.


Scaricare [da Internet, NdT], compilare, aggiornare e mantenere i sorgenti del kernel Linux coinvolge diversi passi, come questo libro illustra. Essendo per natura creature pigre, gli sviluppatori hanno creato alcuni programmi a supporto di queste attività di routine. Descriviamo alcuni di tali utili strumenti e le nozioni di base sul loro utilizzo.
* ''distcc''<br/>http://distcc.samba.org/ � la pagina principale del progetto distcc.


Lo sviluppo del kernel Linux differisce per molti aspetti dal tradizioale processo di sviluppo software. Ad uno sviluppatore del kernel sono richieste alcune attività peculiari:
* ''ccache''<br/>http://ccache.samba.org/ � la pagina principale del progetto ccache.


* Applicare le modifiche ad un "bersaglio mobile" quale è il kernel, a causa della pianificazione dei rilasci di sviluppo.
* Risolvere i conflitti nella fase di merge tra ciò ha fatto rispetto a quanto fatto dagli altri sviluppatori.
* Esportare i suoi cambiamenti in un formato che permetta agli altri sviluppatori di incorporarli facilmente nel proprio lavoro.




27

contributi