Einfuerung in Kernel Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Locking In CFML. Locking in CFML - Warum - Wie - Wobei - Wann } soll gelockt werden? Locking verstehen.
Advertisements

Forschungszentrum caesar
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
6. Der OpenMP Standard Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
Institut MD Universität Rostock Real-Time Linux Szenario –Board, liest (sampled) analoge Daten –produziert 8 Bit Ergebnis und gibt dieses alle 100 ms aus.
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Vorlesung Echtzeitbetriebssysteme.
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
Real - Time Java Seminar Asynchrone Ereignisse und Asynchroner Kontrolltransfer in Real - Time Java Sönke Eilers.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Dynamischer Speicher und Struktur
WHILE - Anweisung.
DO...WHILE Anweisung.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
7 Verteilungsabstraktion
Medizinische Statistik und Informationsverarbeitung
Medizinische Statistik und Informationsverarbeitung Goldschmidt, Quade, Baur Institut für Medizinische Statistik, Dokumentation und Datenverarbeitung.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Das Roboterprojekt Einführung Der erste Entwurf Das Thread-Konzept Hindernisse Website.
RTAI-Linux Echtzeiterweiterung für Linux
Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek.
Betriebssysteme allgemein
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Das Betriebssystem.
Was dir Trivialbeispiele in Async and Await nicht sagen! Marcus Kimpenhaus und Martin Möllenbeck.
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Interprozess- kommunikation (IPC)
Thomas Gleixner – linutronix Linux in Automation 2004 – Uni Hannover.
Studiengang Informatik FHDW
Torsteuerung Marco Korrmann Dominik Sommer.
Sichere Technologie für die elektronische Gesundheitskarte
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
Prof. Dr. Alois Schütte Advanced System Programming 1 Das concurrent Paket 1 Überblick 2 Lock 3 Condition 4 Queue 5 Executors.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
GTALK. Projektteam Kieslich Lindorfer Schöllhammer.
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
Parallel Programming Semaphores / Reader - Writer - Lock
Betriebssysteme Übung 2. Tutorium „System Calls & Multiprogramming“
Beispiel Cache-Architektur
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
LINUX II Unit 9 Network File Server NFS. NFS Überblick ● Zugriff von lokalen Rechner über Netzwerk auf Dateien oder Ordnern auf entfernten Servern ● Entwickelt.
ESP Tutorium Studienassistent: Ewald Moitzi Gruppe 1.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Allgemeine Informatik Seminar 1
.NET Threading im Detail
Rekursion – Speicherverwaltung
Programmieren in C Wie speichert C
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
Netzwerk - Programmierung
K-NN Klassifikation auf dem STI Cell BE Prozessor Michael Mair, Adrian Marte, Martin Schöpf, Daniel Winkler.
Vom Prozessor zum System
Grundlagen der Betriebssysteme [CS2100]
Medizinische Statistik und Informationsverarbeitung
ChuChu Zeit im Agentensystem.
Studiengang Informatik FHDW
Proseminar: Allgegenwärtiges Rechnen
Einführung Definitionen
Test Summary: ein Fehler pro Tag Test First
Einführung Definitionen
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

Einfuerung in Kernel Programmierung Michael Blizek

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

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

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

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

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()

Siehe auch /usr/src/linux/Documentation www.kernel.org/doc/ kernelnewbies.org www.lwn.net/free www.linuxsymposium.org www.linux.org.au/lca