Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einfuerung in Kernel Programmierung

Ähnliche Präsentationen


Präsentation zum Thema: "Einfuerung in Kernel Programmierung"—  Präsentation transkript:

1 Einfuerung in Kernel Programmierung
Michael Blizek

2 About Hauptsaechlich C/keine glibc z.B.: nicht printf, sondern printk
keine Gleitkommazahlen Programmfluss Vorsicht, Interrupts Locking Speicherverwaltung

3 Programmfluss MODULE_INIT/MODULE_EXIT System calls Callbacks
Threads, Timer, Workqueues, ...

4 Interrupts Interrupt ==> Task wird unterbrochen
Interrupts abgedreht ==> Interrupts "gequeued" Wo? Interrupt-handler, Timer local_irq_disable/enable(), local_irq_save/restore() kein sleep() in Interrupts

5 Locking Interrupts aufgedreht: mutex Interrupts abgedreht: spinlock
beides: local_irq_save/restore, spinlock

6 Speicherverwaltung physischer Speicher, nicht Virtueller kmalloc/kfree
GFP_KERNEL, GFP_ATOMIC, GFP_DMA, GFS_NOIO, GFP_NOFS, GFP_HIGH slab caches Requests > 4096 Bytes ... nicht gut kein Speicher ==> "return 0" 0-Pointer dereferenzierung ==> security bug copy_to_user(), copy_from_user()

7 Siehe auch /usr/src/linux/Documentation www.kernel.org/doc/
kernelnewbies.org


Herunterladen ppt "Einfuerung in Kernel Programmierung"

Ähnliche Präsentationen


Google-Anzeigen