driver programming : the linux way
DESCRIPTION
Hardware is a pain. This presentation give a birds eye view on the way to program drivers on a Linux Based Machine. video : https://www.youtube.com/watch?v=rr-lKnxLfB4 report : http://www.slideshare.net/shivekkhurana/driver-programming-reportTRANSCRIPT
Driver Programming
. Sa ha , . Sh e
us e Inno a on en eUn e s O De h
Hardware is complicated
1. Mu p e endo s2. Mu p e e s ons3. O e app n un ona4. No enou h sma p o amme s
HARDWARE
Drivers simplify them
1. So wa e oun e pa s o ha dwa e2. Hand e mu p e HW e s ons3. Hand e mu p e HW endo s4. Do h s a oss d e en OS(es)
DRI ER
Outline
1. The L nux e ne2. T pes o De e D e s( ene a )3. ha / B o De e D e s4. Ne wo In e a es5. Demo
Linux and Linus
1. W en b L nus To a ds (Un e s o He s n )
2. He wan ed a s s em be e han UNIX, and MINIX
3. “The a den a e o u ona .”
The Linux Device Paradigm
HARDWARE
The Linux Device Paradigm
HARDWAREERNEL
The Linux Device Paradigm
HARDWAREERNELUSER SPA E
The Linux Device Paradigm
HARDWAREERNELUSER SPA ESHELL
Drivers are
HARDWAREERNELDRI ER
The Linux Device Paradigm
HARDWAREERNELDRI ERUSER SPA E
The Linux Device Paradigm
HARDWAREERNELUSER SPA E
D nam Load n
The Linux Device Paradigm
HARDWAREERNELDRI ERUSER SPA E
D nam Load n
Types of drivers
1 00 11DRI ER1. ha De es
Types of drivers
DRI ER2. B o De es1 00 11
1 01 01
1 00 10
1 10 01
1 00 11
1 01 01
1 00 10
1 10 01
Types of drivers
DRI ER3. Ne wo In e a es T P/UDP P P
Driver is a module
E e e ne ex ens on s a Modu e
DRI ER
Driver is a module
E e e ne ex ens on s a Modu e
DRI ER MODULE
A device is represented as a file
And o ead/ w e he ph s a de e, we ead w e he e
USER SPA EDE I E FILEDRI ERERNELDE I E ONTROLLER
Process
HARDWARE
Programming Process
De e struct
s u u e o ho d da a pes o ommun a e w h he de es. Th s ma o espond o a ua p ns.
Programming Process
F e ope a ons
A de e o he use spa e s us a e. F e ope a ons maps e RUD o de e.
Programming Process
En po n s
The e s no main() n modu es. Be ause modu e s no an exe u ab e. So we need o de ne en po n s manua o oad de e.
Major Numbers
Ea h de e d e has a ma o numbe den e wh h s ass ned on un me and s un que o a de es
Execution Stack is small
No memo s a o a ed on un me. A memo s ese ed a exe u on
Makefile
make s a nux app a on ha omp es d e s (so wa es n ene a )
Attaching the module to kernel
nsmod ha _de e. om nod /de / ha _de e 251 0
Exit point
Ex po n s a so needs o de ned manua o ea up he used e ne spa e
User space program
Open de e e and pe o m use spa e n e a ons
Demo