page header photo
share Twitter share LinkedIn

cursus Linux device drivers

Deze opleiding is specifiek voor het Linux systeem

Deze cursus leert u om in de praktijk een device driver voor Linux te schrijven. Daarbij hoort een grondige kennis van de communicatie tussen de device driver en de rest van de kernel. USB-drivers krijgen extra aandacht. Lees verder >>>

Voor wie?

  • Deze cursus is bestemd voor gevorderde (systeem-)programmeurs die device drivers voor Linux moeten ontwerpen, aanpassen en onderhouden.
Cursusduur: 4 dagen        In-company cursus op maat
Contact
Kosten € 2390,- excl. BTW       

Wanneer

Wij hebben deze cursus momenteel niet van een vaste datum voorzien. Als u belangstelling hebt, neem dan contact met ons op, zodat we in overleg kunnen bepalen wanneer en op welke manier (klassikaal, coaching on the job, privé-cursus, expert session) wij de benodigde kennis overdragen.
Voor contact: telefoon 024-352 72 72 of info@ATComputing.nl.

Meer informatie over deze cursus

Randapparaten

Niet elk randapparaat kan zonder meer op een Linux-machine worden aangesloten. Afgezien van de benodigde hardware-interfaces, moet er in de Linux-kernel extra code worden ingebouwd die de interfacing verzorgt tussen de hardware en de overige kernel-routines van het I/O-systeem. Om een device driver te kunnen schrijven is een grondig inzicht in de werking van sommige delen van de Linux-kernel nodig. Kennis van de manier waarop de Linux-kernel communiceert met de device driver (en omgekeerd), de manieren waarop een device driver met het fysieke randapparaat moet omgaan en enige ervaring met enkele typische soorten van device drivers. Verder is het nodig te weten hoe een nieuwe device driver in een bestaande kernel kan worden ingebouwd.

Let op: de cursus wordt in principe in het Engels gegeven, tenzij alle deelnemers Nederlandstalig zijn. Alle cursusdocumentatie is Engelstalig.

Voorkennis

Voor deze cursus is het noodzakelijk dat u vloeiend in C kunt programmeren. Verder is enige kennis van programmeren met system calls gewenst.

De benodigde voorkennis kunt u verkrijgen via de cursussen "De programmeertaal C" en "Linux/UNIX deel 1". Een combinatie met onze cursus "Linux System Programming" geeft aan programmeurs de perfecte kennis van de mogelijkheden van een Linux kernel.

Inhoud van de cursus

Aan de orde komen:

  • Algemene kernel-mechanismen.
  • De algemene rol van de device driver: typen device drivers, fysieke I/O, major en minor nummers. Loadable versus statische drivers.
  • Entry points van drivers: character-drivers, block-drivers en network-drivers. Device nummers.
  • Algemene mechanismen: Sleep & wakeup (wait-queues). Buffer allocatie. Timer afhandeling. Interrupt handling.
  • Configuratie en initialisatie: error logging, debugging, /proc filesysteem en /dev filesysteem.
  • Character drivers: data transport tussen user mode en kernel mode, error-codes, het ioctl-interface.
  • Block drivers: buffer management, mount & unmount, request-queue en de queue-routine, interrupt- en start-routines.
  • USB drivers: de USB-skeleton driver in detail, probe, release. Tijdens een praktijkoefening wordt de USB-skeleton-driver omgebouwd voor een hardware-interfacekaart (voor elke cursist is zo'n kaart tijdens de oefening beschikbaar).

De block- en netwerkdrivers worden in de cursusdocumentatie uitvoerig behandeld, maar de ervaring leert dat de cursisten liever meer tijd aan character-drivers willen besteden. Neem van tevoren contact met ons op als uitvoerig behandelen van block- en/of netwerkdrivers voor u van belang is.

Specifieke hardware-details van randapparatuur zult u moeten halen uit de door de fabrikant verstrekte informatie.

Documentatie

De cursus wordt in principe in het Engels gegeven, tenzij alle deelnemers Nederlandstalig zijn. Alle cursusdocumentatie is Engelstalig.

Bij de cursus ontvangt u een cursusdictaat, met kopieën van de presentaties, oefeningen, en de uitwerkingen hiervan.

Afsluiting

Enige tijd na afloop van de cursus ontvangt u een certificaat van deelname.

Valid XHTML 1.0 Strict   Valid CSS2