Embedded Linux - Von der Systemarchitektur zur Echtzeit

5-Tage-Kurs

Der Kursinhalt kann auf Ihre Bedürfnisse und Ziele zugeschnitten werden. Wenn es die Zeit erlaubt, kann auch eine Beratung während des Kurses stattfinden. Bitte klicken Sie auf die Registerkarte "Öffentlich", um die öffentlichen Sitzungen zu sehen.

Privat online
ab 3 Teilnehmern
Vor Ort in Ihren Räumlichkeiten
ab 3 Teilnehmern
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Viertel wählen Quartal Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
3. Quartal 2023 privat remote virtuell Englisch UTC+2 01. Oktober 2023
4. Quartal 2023 privat remote virtuell Englisch UTC+2 Jan 01, 2024
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Datum auswählen Datum Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis

Inhalt wie unten beschrieben.

Öffentlich online
ab 1 Teilnehmer
Öffentlicher Workshop im Klassenzimmer
ab 1 Teilnehmer
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Datum auswählen Datum Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
18. Dezember 2023 öffentlich remote virtuell Deutsch/Englisch (TBD) UTC+2 (TBD) 17. November 2023

Unsere ausführliche Einführung in Embedded Linux. Von den Grundlagen bis zur Interprozesskommunikation und Echtzeit-Linux.

Ziele des Kurses

Das Ziel dieses Kurses ist es, die Grundlagen von Embedded Linux zu vermitteln.

Wir werden Themen wie diese sehen:

  • Wie passen die Puzzleteile zusammen?
  • Welche Komponenten werden zum Aufbau eines eingebetteten Linux-Systems benötigt?
  • Woher bekommt man sie und wie kann man sie konfigurieren/erstellen/installieren?
  • Wie können Sie Hilfe von der "Gemeinschaft" erhalten?
  • Was ist mit Softwarelizenzen und der Einhaltung von Open-Source-Lizenzen?
  • Grundlagen der Kommunikation zwischen Prozessen
  • Real-Time

Praktische Übungen vermitteln Ihnen die nötige Praxiserfahrung, um nach erfolgreichem Abschluss des Workshops eigene Embedded Linux-Systeme zu entwickeln.

Beschreibung

In diesem fünftägigen Kurs werden die Konzepte von Embedded Linux durch praktische Übungen in Kombination mit Theorie veranschaulicht. Die praktischen Übungen werden auf dem Host mit einem Yocto Project® Software Development Kit (SDK) und Zielhardware (z.B. i.mx6) durchgeführt. Der gesamte Workshop ist darauf ausgelegt, Sie so schnell wie möglich auf den neuesten Stand zu bringen. Die Philosophie, Konzepte und Befehle, die notwendig sind, um Embedded Linux effektiv zu nutzen, werden in einer einzigartigen Kombination aus Theorie und Praxis beschrieben. Anstatt zu versuchen, alles selbst herauszufinden, lernen Sie von einem erfahrenen Trainer und integrieren Sie das neu erworbene Wissen über Embedded Linux in Ihre eigenen Embedded-Entwicklungsprojekte.

Voraussetzungen

  • Grundlegende Vertrautheit mit der Verwendung eines Linux-Systems (z. B. Ubuntu) als Endbenutzer im Benutzerbereich
  • Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
  • Vertrautheit mit eingebetteten C-Konzepten und Programmierung
  • Fähigkeit zur Entwicklung von Software unter Verwendung der C-Syntax
  • Grundkenntnisse über eingebettete Prozessoren und Entwicklungsboards
  • ...und/oder keine Angst, mehr über die oben genannten Themen zu erfahren...

Kurs-Fahrplan

Wer sollte teilnehmen?

Manager, Projektleiter, Software-, Hardware-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Techniker und andere an der Technologie Interessierte, die möglichst schnell verstehen wollen, wie Embedded Linux funktioniert.

  • Sie müssen Linux verwenden, oder Sie können sich den Luxus erlauben, zu entscheiden, ob es sinnvoll ist, es zu verwenden oder nicht.
  • Vielleicht haben Sie bereits versucht, Embedded Linux zu verwenden, sind sich aber nicht ganz sicher, ob Sie alles richtig gemacht haben.
  • Sie verwenden derzeit ein anderes Betriebssystem und möchten herausfinden, ob Linux vielleicht besser und/oder günstiger ist.

Gliederung des Kurses

Tag 1

Einführung

  • Geschichte von Unix/Linux | Lizenzierung | Standards | Arbeiten mit Freier Software | Spelunking | Unix Philosophie

Host-Spielplatz

  • Architektur | shell | Benutzer | su | Dateihierarchie-Standard (FHS) | daemons | statische Bibliotheken/shared Bibliotheken | Berechtigungen | Zugangskontrolle | umask | hard Links | soft Links | mehr Erlaubnis-Bits | (cross) compile Framework | real/effektiv user id(uid) | reale/effektive Gruppenkennung (gid)
Tag 2

Prozesse und Kommunikation zwischen Prozessen (IPC)

  • Linux-Architektur | Was ist ein Betriebssystem? | Was ist ein scheduler? | Linux: Scheduler(s) - Prioritäten - scheduling Klassen | Prozess, Task, Thread | errno | fork | Prozessbeendigung | Prozesszustände | Zombies | Wie können Sie die Prozesse untersuchen?
  • einfache Interprozesskommunikation (IPC)
    • Shell-Umleitung | shelling out | tmpfiles
  • erweiterte Interprozesskommunikation (IPC)
    • generisch | pipe | Signal | interrupted system call | message queue | Semaphor | Mutex | shared memory | socket | select | poll
  • andere prozessübergreifende Kommunikationsmethoden | IInterprozesskommunikationstechniken, die vermieden werden sollten
Tag 3

Linux-Hardware-Kit

  • Wie bootet Linux auf einem PC und auf dem Evaluation Board? | Boot-Sequenz | SD-Karten-Partitionen | Booten sehen

Was wird benötigt...

  • Gastgeber
    • Toolkit
      • Das Yocto Project® | Installieren Sie das Yocto Project® SDK
    • Vorbereitung der SD-Karte | Terminal-Emulation
      • screen | byobu | minicom
    • Server
      • tftp | NFS
    • Root-Dateisysteme
  • Zielsystem
    • git | u-boot
      •  Skripting | fancy stuff | checkout | config | build | install | variables and commands
    • Flacher Gerätebaum (fdt)
      • was ist ein fdt? | gerätebaumcompiler | beispiele
    • Kernel
      • checkout | Konfig-kconfig | bauen-kbuild
    • Flacher Gerätebaum (fdt)
      • bauen | installieren
    • Kernel-Module
      • bauen | installieren
Tag 4

Root File Systems

  • minimale rootfs vorbereiten | tftp Server für Tests
  • ramdisk | mtd | jffs2 | mtdparts | cramfs | roEXT2 | rootfs Vergleich

Anpassungen

  • das System hängt | Pseudo tty | getty | runlevel | statische IP | mount nfs | ssh Server

Debugging im Userspace

  • Was ist ein Fehler/Debugging? | Arten von Fehlern | Fehlerbeseitigungsstrategie
  • Einfache Werkzeuge
    • lsof | ltrace | strace | procfs | top | netstat | syslog | ...
  • Erweiterte Tools
    • Was ist ein Debugger?
    • gdb: gdb auf dem Zielsystem | gdb mit remote debugging

JTAG-Debugging (optional)

  • JTAG | JTAG-Einrichtung | Wie debuggt man u-boot vor Relocation | andere Möglichkeiten

Profilierung/Verfolgung

  • Profiling im Gegensatz zu Tracing
  • Profiling/Tracing-Werkzeuge: strace | system timers | gprof | gcov | perf
  • top und ähnliche Programme: top | powertop | powerdebug
  • crash: gdb auf Steroiden
Tag 5

Real-Time

  • Voraussetzungen
    • Unterschied zwischen Kernel und Userspace | Programmabschnitte | Unterbrechungen | Re-Entrant Code
  • Echtzeit-Intro
    • Was ist Real-Time? | Was ist harte Echtzeit?
  • Echtzeit-Linux
    • Hypervisor | Dualer Kernel | Vollständig präemptiver Kernel
  • Abgestuftes Echtzeitverhalten
    • explizite/implizite Präemptionspunkte | Echtzeit-Präemptionspatch | vollständig präemptiver Kernel | harte Echtzeit-Erweiterungen
    • (optional) Kernel patchen/konfigurieren/erstellen | auf dem Zielsystem testen
  • Doppelter Kernel
    • RTLinux | Real-time application interface (RTAI) | Xenomai
      • Xenomai im Vergleich zu RTAI | Adaptive Domain Environment for Operating Systems (ADEOS) | Xenomai-Architektur/SW-Stack/Skins
      •  (optional) Kernel patchen/konfigurieren/erstellen | auf dem Zielsystem testen
  • Messergebnisse: Nicht-Echtzeit-Kernel | Preempt-rt-Kernel | Dualer Kernel (Xenomai)
  • Echtzeit-Mythen

Was die Kunden sagen