SlideServe
Menu
Préférences
© SlideServe · v2026

Linux Device Driver

natala avatar
14 diapositives · 402 Views · Oct 23, 2012

Linux Device Driver. NCTU OS Lab Chi-Wei Yang. Outline. Overall Architecture Character Driver Block Driver Network Driver Support Functions. Overall Architecture. VFS Driver Types character block network. Overall Architecture (cont.). Overall Architecture (cont.). Operation Modes

Linux Device Driver - slide 1
01 / 14Linux Device Driver
1 / 17

Télécharger la présentation

Linux Device Driver
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Linux Device Driver NCTU OS Lab Chi-Wei Yang

  2. Outline • Overall Architecture • Character Driver • Block Driver • Network Driver • Support Functions

  3. Overall Architecture • VFS • Driver Types • character • block • network

  4. Overall Architecture (cont.)

  5. Overall Architecture (cont.) • Operation Modes • polling • interrupt • DMA

  6. Character Driver • Device Properties • can’t be randomly accessed • can’t be buffered • usually are slow devices • Export Interface • file_operations • Data Flow in read/write

  7. Character Driver (cont.)

  8. Block Driver • Device Properties • can be randomly accessed • accessed in units of blocks • to speed up access, buffer cache is used • Export Interface • file_operations • request_fn() • Data Flow in read/write

  9. Block Driver (cont.)

  10. Network Driver • Export Interface • Data Flow in read/write

  11. Network Driver (cont.)

  12. Network Driver (cont.)

  13. Support Functions • I/O ports reservations • request_region() • Memory Allocations • kmalloc(), vmalloc(), get_free_page() • Interrupt Handler Registration • request_irq() • Data Transfer between User/Kernel • memcpy_fromfs()

  14. Support Functions (cont.) • Bottom Halves • mark_bh() • its main purpose is to provide fewer blocking time due to interrupts • top half/bottom half • priority-based • limitions in writing bottom halves • can't call schedule(), can't block