Libro programmazione Kernel Linux
Salve, chiedo un parere a qualcuno.
Sapreste consigliarmi un ottimo libro in italiano, sulla programmazione Livello Kernel di Linux, specialmente sui diversi Device Driver.
Il classico "Linux Device Driver" di Rubini è purtroppo solamente in inglese, e consultandolo mi capita molte volte di interpretare in modo sbagliato le parole, per via del mio inglese.
Quindi un'alternativa davvero valida al libro di Rubini, in italiano, quale potrebbe essere?
Grazie a chi risponde.
Sapreste consigliarmi un ottimo libro in italiano, sulla programmazione Livello Kernel di Linux, specialmente sui diversi Device Driver.
Il classico "Linux Device Driver" di Rubini è purtroppo solamente in inglese, e consultandolo mi capita molte volte di interpretare in modo sbagliato le parole, per via del mio inglese.
Quindi un'alternativa davvero valida al libro di Rubini, in italiano, quale potrebbe essere?
Grazie a chi risponde.
Risposte
Deve essere proprio un libro?
Perché, sempre partendo dai lavori di Rubini
www.linux.it/~rubini
e cercando un po' sui motori di ricerca, potresti trovare informazioni tecniche, articoli, estratti ecc. che facciano al caso tuo.
Sennò, un bel corso di inglese accelerato
Perché, sempre partendo dai lavori di Rubini
www.linux.it/~rubini
e cercando un po' sui motori di ricerca, potresti trovare informazioni tecniche, articoli, estratti ecc. che facciano al caso tuo.
Sennò, un bel corso di inglese accelerato

Grazie, eeeh me lo dico sempre pure io di imparare meglio l'inglese 
Si, il sito di rubini e le informazioni reperibili su internet sono ovviamente tante e di facile consultazione.
Ma ci sono dei contro, sono fatti da tanti autori, le informazioni sono sparse, e altre mille cose.
Avendo un libro cartaceo è più facile la consultazione, non solo in questo caso, cerso sempre se possibile di trovare un libro.
Comunque se non esiste un libro autorevole equivalente a quello di rubini, mi accontenterò.

Si, il sito di rubini e le informazioni reperibili su internet sono ovviamente tante e di facile consultazione.
Ma ci sono dei contro, sono fatti da tanti autori, le informazioni sono sparse, e altre mille cose.
Avendo un libro cartaceo è più facile la consultazione, non solo in questo caso, cerso sempre se possibile di trovare un libro.
Comunque se non esiste un libro autorevole equivalente a quello di rubini, mi accontenterò.
Un ottimo testo in italiano sulla programmazione a livello di kernel linux, anche se non specificatamente sui driver, è GaPiL (Guida alla Programmazione in Linux) --> http://gapil.truelite.it/. Un buon punto da dove partire...
Come ha detto supergems Gapil è un ottimo punto d'inizio per cominciare.
Devi guardare il mondo degli OS in quest'ottica:
Kernelspace <=> syscall <=> Userspace
Il tutto come se fosse una cipolla a strati dal più esterno (Userspace) a quello più interno (Kernelspace).
Le syscall sono solo il tramite per passare dallo strato più esterno a quello più interno (Gapil descrive questo processo).
Quindi ti consiglio questa scala in ordine di conoscenze richieste top-down:
1) Linguaggio C con estensioni POSIX (le sai meglio per te);
2) Architetture dei calcolatori, ti consiglio il Patterson;
2) Sistemi Operativi di Silberschatz, Galvin, Gagne;
3) Gapil;
4) Pratica delle syscall descritte in Gapil attraverso il C;
5) Understanding the linux kernel 3 Ed.
A questo punto ti verranno in mente delle domande o meglio dovresti capire a questo punto in quale direzione del kernel space
vuoi indirizzarti, perché nemmeno Linus Torvalds conosce tutto il kernel
Quindi magari che so, ti può venire la voglia di approfondire il mondo del networking, della virtual memory, dei device drivers, ecc,
per ognuno esiste un libro dedicato!
Esempi:
1) Linux device drivers;
2) Understanding the linux network internals;
3) Understanding the linux virtual memory.
Ciao!
Devi guardare il mondo degli OS in quest'ottica:
Kernelspace <=> syscall <=> Userspace
Il tutto come se fosse una cipolla a strati dal più esterno (Userspace) a quello più interno (Kernelspace).
Le syscall sono solo il tramite per passare dallo strato più esterno a quello più interno (Gapil descrive questo processo).
Quindi ti consiglio questa scala in ordine di conoscenze richieste top-down:
1) Linguaggio C con estensioni POSIX (le sai meglio per te);
2) Architetture dei calcolatori, ti consiglio il Patterson;
2) Sistemi Operativi di Silberschatz, Galvin, Gagne;
3) Gapil;
4) Pratica delle syscall descritte in Gapil attraverso il C;
5) Understanding the linux kernel 3 Ed.
A questo punto ti verranno in mente delle domande o meglio dovresti capire a questo punto in quale direzione del kernel space
vuoi indirizzarti, perché nemmeno Linus Torvalds conosce tutto il kernel

Quindi magari che so, ti può venire la voglia di approfondire il mondo del networking, della virtual memory, dei device drivers, ecc,
per ognuno esiste un libro dedicato!
Esempi:
1) Linux device drivers;
2) Understanding the linux network internals;
3) Understanding the linux virtual memory.
Ciao!