Sei in: Altro

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-