Echtzeit-Linux und Systemprogrammierung
Format | Präsenz-Seminar in Würzburg |
---|---|
Artikelnummer | SW11071.2 |
Produktart | Inhouse Seminar, Offenes Seminar |
Sprache | Deutsch |
Dauer | 2, 3 oder 5 Tage |
Produktinformationen "Echtzeit-Linux und Systemprogrammierung"
Embedded-Linux-Woche für Fortgeschrittene: Vom Embedded-Linux-User zum systemnahen Echtzeit-Entwickler
Die Linux-Systemprogrammierung ist ein wichtiger Bereich für Entwickler, die robuste, effiziente und zuverlässige Software auf Systemebene erstellen möchten. Um leistungsstarke und ressourcenschonende Anwendungen zu entwickeln und dabei effizient mit Ressourcen wie Speicher, Prozessoren und Geräten umzugehen, müssen Systemprogrammierer den Linux-Kernel und das virtuelle Dateisystem verstehen. Syscalls sind dabei eine entscheidende Schnittstelle zwischen Anwendungen und dem Kernel. Sie ermöglichen den Zugriff auf Kernel-Funktionen, das Lesen und Schreiben von Dateien, die Verwaltung von Prozessen und die Nutzung anderer Betriebssystemdienste.
Für Anwendungen mit Echtzeitanforderungen, wie beispielsweise Steuerungssysteme oder Robotik, ist es wichtig, Kenntnisse in Echtzeit- und Multithreading-Programmierung zu besitzen. Dabei geht es um Echtzeit-Tasks, Prioritäten und verschiedene Scheduling-Modelle. Beim Debugging und der Fehlerbehebung müssen Systemprogrammierer Signale, Core-Dumps und Remote-Debugging verwenden können – insbesondere bei komplexen, systemnahen Problemen. Zudem erfordert die Interaktion mit Hardware spezielle Kenntnisse, um auf Geräte wie GPIOs, I2C- und SPI-Busse zuzugreifen und mit ihnen zu kommunizieren.
Der Vortragstag widmet sich ganz dem Thema Echtzeit-Linux. Behandelt werden die Fragen, wie der Echtzeit-Kernel mit PREEMPT_RT funktioniert und wie auftretende Latenzen eingegrenzt werden können.
Bringen Sie Ihre Fragen mit: Nutzen Sie die Chance, und stellen Sie den Referenten die Fragen, die Sie in Ihrem Projekt oder in Ihrer Abteilung beschäftigen.
Die Embedded-Linux-Woche setzt sich aus zwei Teilen zusammen, die jeweils aus zwei Seminartagen und einem gemeinsamen Vortragstag bestehen. Sie können wählen, ob Sie nur einen Teil oder die komplette Woche zum Vorteilspreis buchen möchten. Beim zweiten Teil haben Sie zusätzlich die Möglichkeit, diesen mit oder ohne den Vortragstag zu buchen.
Bitte beachten: Das Wissen der ersten zwei Seminartage wird für den Vortragstag und die darauffolgenden Seminartage vorausgesetzt!
Ziele
- Verständnis des Betriebssystemaufbaus
- Verwendung der Schnittstellen zum Betriebssystem
- Erstellung von systemnahen Programmen
- Diagnose des Programmverhaltens
- Tracing von Laufzeitproblemen
- Funktionsweise von PREEMPT_RT
- Konfiguration und Anwendung von PREEMPT_RT
- Bestimmung der Echtzeiteigenschaften
- Analyse von Systemlatenzen auf einem Linux-System mit PREEMPT_RT
Zielgruppe
- Entwickler, die systemnahe Programme unter Linux erstellen möchten
- Entwickler und in deren Umfeld Beschäftigte (Tester, QA etc.), die erfahren möchten, wie der Linux-Kernel funktioniert und welche Schnittstellen das Betriebssystem anbietet
1. Tag: Seminartag: Aufbau und Verwendung des Linux-Kernel
Referent: Andreas Klinger
- Aufbau des Linux-Kernels, Virtuelles Dateisystem
- Funktionsweise von Syscalls
- Verwendung von Dateien und Device-Nodes
- Erstellung eigener Programme
- Blockierendes Verhalten von read und write
- Memory-Mapping
2. Tag: Seminartag: Prozessverwaltung und Tracing
Referent: Andreas Klinger
- Prozesse und deren Verwaltung
- Zombies
- Scheduling-Modell
- Realtime- und Deadline-Tasks
- CPU-Affinitäten und CPU-Sets
- Tracing von Interrupt- und Scheduling-Events
3. Tag: Vortragstag: Echtzeit-Linux und Qualitätssicherung
Referenten: Alexander Bähr, Jan Altenberg
- Historischer Überblick zu Echtzeit-Linux
- Das Linux Foundation RTL Collaborative Project
- Linux und PREEMPT_RT: Überblick, Installation und Konfiguration
- Bestimmung der Echtzeiteigenschaften eines Linuxsystems
- Qualitätssicherung: Vorstellung der OSADL QA-Farm
- Methoden zur Analyse unerwünschter Systemlatenzen: „Latency Fighting“
4. Tag: Seminartag: Interprozesskommunikation und Debugging
Referent: Andreas Klinger
- Signale
- Core-Dumps und deren Verwendung
- Remote-Debugging
- Interprozesskommunikation
- Shared-Memory, Semaphoren, Message-Queues
- Timer
- Multithreading
- Mutexe und Barriers
5. Tag: Seminartag: Ressourcenverwaltung und Hardware-Anbindung
Referent: Andreas Klinger
- Cgroups
- Capabilities
- Verwendung von Hardware
- GPIOs
- I2C- und SPI-Bus
- Anbindung von Sensoren mit Industrial-IO
Andreas Klinger
Andreas Klinger ist seit 1998 Trainer, Berater und Entwickler im Bereich der systemnahen Softwareentwicklung mit den Schwerpunkten Treiberentwicklung, Embedded-Linux und Echtzeit. Als Spezialist für Linux beschäftigt er sich mit dem internen Aufbau des Kernels, den Systemmechanismen sowie vor allem mit deren Einsatz in Embedded-Systemen. Andreas Klinger wurde 2014 von den Besuchern des ESE Kongress mit dem Speaker Award Publikumspreis ausgezeichnet.
Alexander Bähr
Alexander Bähr kommt ursprünglich aus dem Maschinenbau mit dem Fokus auf Steuerungstechnik. In seiner langjährigen beruflichen Praxis mit dem Schwerpunkt Messtechnik und der damit verbundenen Datenverarbeitung waren die umfangreichen Möglichkeiten von Open Source-Software bei der Umsetzung von vielen Projekten eine unschätzbare Hilfe. Jetzt arbeitet er im Bereich der technischen Informatik bei der Open Source Automation Development Lab (OSADL) . Des Weiteren ist er auch als Sprecher bei verschiedenen Fachveranstaltungen wie z. B. dem ESE-Kongress tätig.
Jan Alternberg
Jan Altenberg beschäftigt sich seit mehr als 20 Jahren beruflich mit Linux. Seit 2021 arbeitet er als Senior Open Source Consultant und Embedded Systems Integrator für das Open Source Automation Development Lab (OSADL) und ist dort seit 2024 auch Mitglied des Vorstands. Er ist regelmäßiger Sprecher auf verschiedenen Fachkonferenzen und wurde mehrfach von den Besuchern des ESE-Kongress mit dem Speaker Award Publikumspreis ausgezeichnet.