Sviluppo driver linux
CORSO SVILUPPO DRIVER LINUX (19-22 Maggio 2014) - Aperte le iscrizioni - Sede Roma/Frascati
Creare un Driver per Linux con il CORSO SVILUPPO DRIVER LINUX (Roma/Frascati dal 19 al 22 MAGGIO 2014)
L’obiettivo di questo corso, organizzato in 4 giornate, è quello di fornire le conoscenze necessarie per lo sviluppo di driver di periferica per sistemi Linux. In ogni lezione saranno alternati concetti teorici ed esercitazioni pratiche, durante le quali saranno sviluppati driver di esempio che permetteranno di applicare immediatamente i concetti acquisiti.
Prerequisiti
Al fine di poter attendere il corso con il massimo profitto è consigliato che lo studente sia in possesso delle seguenti conoscenze:
- esperienza di programmazione nel linguaggio C.
- familiarità con sistemi Linux.
PROGRAMMA DEL CORSO
Intorduzione:
- astrazione delle periferiche in Linux
- classi di dispositivi (character, block, network)
- Linux VFS e device file
- struttura e organizzazione di un driver
Moduli del kernel Linux:
- scrivere e compilare un semplice modulo
- gestire i moduli dalla linea di comando
- parametri e licenza dei moduli
- debugging di moduli del kernel
Driver a caratteri:
- major e minor number
- registrare un device file a caratteri
- tabella delle operazioni su file
- trasferire dati tra spazio utente e kernel
- metodi open, close, read e write
Gestione del tempo:
- timekeeping
- introduzione di ritardi
- waitqueue
Attività procrastinabili:
- contesti di esecuzione del kernel e relative restrizioni
- timer legacy ed ad alta risoluzione
- tasklet
- workqueue
Gestione della concorrenza:
- kernel preemption
- quando la sicronizzazione è necessaria
- variabili per-CPU
- operazioni atomiche
- barriere di memoria
- identificazione delle sezioni critiche
- spinlocks
- semafori e mutex
- abilitare e disabilitare le interruzioni
Allocazione della memoria:
- introduzione alla gestione della memoria in Linux
- allocare page frames
- kmalloc e le sue varianti
- kvalloc
Rilevazioni dei dispositivi e gestione del bus:
- supporto Linux per bus PCI
- supporto Linux per bus USB
Comunicazione con l'hardware:
- porte di I/O
- memoria di I/O
- allocazione e mapping di spazi di I/O
- funzioni per leggere e scrivere porte e memorie di I/O
Gestione delle interruzioni:
- IRQ legacy, MSI e MSI-X
- registrazione di un gestore delle interruzioni
- come scrivere un gestore delle interruzioni
- separazione tra gestori top half e bottom half
File operation avanzate:
- mmap
- ioctl
- I/O bloccante e non
Driver per dispositivi a blocchi:
- introduzione ai dispositivi a blocchi
- registrazione di un driver a blocchi
- code di richieste
- operazioni per dispositivi a blocchi
- gestione delle richieste
Driver per schede di rete:
- registrazione di un netdevice
- network operation
- ethtool operation
- inviare e ricevere pacchetti
PER INFO COSTI ED ISCRIZIONI: //www.epigenesys.com/prossimi-corsi/corso-sviluppo-driver-linux/
PER INFO: //www.epigenesys.com/contattaci/
Sito ufficiale: www.epigenesys.com/it/
Mail : info@epigenesys.com
Tel: 0039 0694293293
Fax: 0039 96708544
Linkedin: //www.linkedin.com/company/epigenesys-s-r-l-