Embedded Linux Systemarchitektur

Embedded Linux Systemarchitektur

title-1

Kursziele

Vermittlung der Grundlagen von Embedded GNU/Linux und vor allem wie die vielen Puzzlesteine zusammen gesetzt werden sollten. Welche Komponenten werden benötigt, um ein Embedded-GNU/Linux-System zu erstellen? Woher bekomman man sie? Wie werden sie konfiguriert/gebaut/installiert? Wo kann man Hilfe bekommen? Was ist mit diesen Softwarelizenzen? Praktische Übungen vermitteln Ihnen die notwendige praktische Erfahrung, um nach erfolgreichem Abschluss dieses Trainings Ihre eigenen eingebetteten GNU/Linux-Systeme zu entwickeln.

Beschreibung

Dieser fünftägige Trainingskurs beinhaltet praktische Übungen auf der (z.B. phyBOARD-Mira i.MX 6 Quad - Full Featured) kombiniert mit Anleitung zur Veranschaulichung der Konzepte von Embedded GNU/Linux. Es wurde entwickelt, um Sie schnell auf den neuesten Stand zu bringen. Die Philosophie, Konzepte und Befehle, die notwendig sind, um GNU/Linux effektiv zu nutzen, werden durch eine Kombination von Theorie und Praxis beschrieben. Erfinden Sie das Rad nicht neu, sondern lernen Sie von einem erfahrenen Trainer und bringen Sie das Wissen über GNU/Linux und die Fähigkeit, es effektiv in Ihr eigenes Embedded-Entwicklungsprojekt zu integrieren, mit nach Hause.

Voraussetzungen

  • Grundlegende Vertrautheit mit der Verwendung eines GNU/Linux-Systems (z.B. Ubuntu) als Endbenutzer im user space
  • Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
  • Grundkenntnisse der Programmierung von User-Space Anwendungsentwicklung mit GNU/Linux
  • Grundkenntnisse zu Embedded-Prozessoren und Entwicklungsboards
  • Mittelmäßige Programmierkenntnisse in der Sprache C
  • ... und/oder keine Angst, das Obige zu lernen ...

Wer sollte teilnehmen?

Manager, Projektmanager, Software-, Hardware-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Techniker und andere an der Technologie interessierte Personen, die möglichst schnell verstehen wollen, wie Embedded GNU/Linux funktioniert. Sie müssen GNU/Linux verwenden oder Sie haben den Luxus zu entscheiden, ob es sinnvoll ist, es zu benutzen oder nicht. Vielleicht haben Sie bereits versucht, Embedded GNU/Linux zu verwenden, sind sich aber nicht sicher, ob Sie alles richtig gemacht haben. Sie verwenden derzeit ein anderes Betriebssystem und möchten herausfinden, ob GNU/Linux besser und/oder billiger ist.

Welche Vortragsmethoden dürfen wir Ihnen anbieten?

Das Trainingsmaterial ist auf Englisch, aber die Präsentation kann sowohl auf Englisch als auch auf Deutsch gemacht werden, ganz wie Sie es wünschen und zwar welt- bzw. europaweit.

  • vor Ort (öffentliche Schulung oder in-house bei Ihnen) - mit Trainer *)
  • Online - mit Trainer **)
  • On-site/Online-Kombination - mit Trainer *)**)

Während des Trainings bieten wir Laptops *), Boards *) **), Arbeitshefte und Nachschlagewerke (in Englisch - elektronisch oder gedruckt) *) **), Fernzugriff auf Server und Boards **), Screen-Sharing **), Audio-Bridge * *) an. Wenn Sie genaueres zum Thema "Trainings Vortragsmethoden" wissen möchten schauen Sie bitte hier nach und/oder fragen Sie hier.

Die Bücher und Beispiele nehmen die Schulungsteilnehmer normalerweise nach der Schulung mit nach Hause.

Zeitplan

  • 5 Tage in Folge 09:00 bis 17:00 mit Pausen (Ihre Zeitzone - festzulegen)

Dozent

Kursinhalt

Einführung

  • Geschichte von Unix/Linux
  • Lizenzierung
  • Standards
  • Mit freier Software arbeiten
  • Spelunken (Code lesen)
  • Unix-Philosophie

Host Spielplatz

  • Architektur
  • Shell
  • FHS (file hierarchy standard)
    • Geräte, Daemon, Booten, Program Sections, statische/shared Bibliotheken
  • Berechtigungen
    • Zugriffskontrolle, Ändern von Berechtigungen, umask
  • harte/weiche Links
  • echte/effektive uid/gid

Prozess/Interprozesskommunikation

  • IPC-Einführung
    • Unix/Linux-Architektur
    • Was ist Betriebssystem?
    • Was ist ein Scheduler?
    • Linux-Scheduler
    • Linux-Prioritäten
    • Linux-Scheduler(s)
    • Linux Scheduling Klassen
    • Prozesse/Tasks/Threads
    • errno
    • fork()
    • Prozessbeendigung
    • Prozesszustände
    • Zombies
    • Mehr über Prozesse
    • Sehen wir uns einen Prozess an
  • Einfache Interprozesskommunikation
    • Shell-Umleitung
    • Shelling out
    • temporäre Dateien
  • Interprozesskommunikation generisch
  • Interprozesskommunikation
    • Nachrichtenübergabe(message passing) im Vergleich zu gemeinsam genutzten Speicher(shared memory)
  • Fortgeschrittene Interprozesskommunikation
    • Pipes
    • Signale
    • Unterbrochene System Calls
    • POSIX.4 Nachrichtenwarteschlangen (Message Queues)
    • Semaphoren Einführung
    • Mutex
    • Semaphoren
    • gemeinsam genutzten Speicher(Shared Memory)
    • Sockets
    • select/poll
      • self-pipe Trick
    • Andere Interprozesskommunikations-Mechanismen
  • Interprozesskommunikations-Techniken die man vermeiden sollte

Besonderheiten an Eingebetteten Systemen

  • Einführung
  • Portierbarkeit
  • Bauen
    • Cross/Native Toolchain
  • Toolchains
  • C-Bibliotheken
    • glibc, uclibc, eglibc, musl, others
    • Shared Bibliotheken kleiner machen

Eval Board

  • Eval Board
  • GNU/Linux auf einem PC booten
  • GNU / Linux auf einem eingebetteten System booten
  • Bootsequenz
  • SD-Kartenpartitionen

Was man so braucht

  • Host
    • Werkzeugkasten
      • Das Yocto-Projekt
      • Das Yocto SDK installieren
    • SD-Karte
    • screen/byobu
    • Minicom
    • TFTP-Server
    • Root file Systeme
    • NFS-Server
  • Target
    • U-Boot
      • Das U-Boot
      • U-Boot: Scripting
      • U-Boot: Schickes Zeug
        • U-Boot: Spash Screen
        • U-Boot: U-Boot-Umgebung von Linux
        • U-Boot: Post mortem
        • U-Boot: Automatisches SW-Update
        • U-Boot: Wie kann man selbst zur Entwicklung beitragen?
      • U-Boot: Runterladen/Konfigurieren/Bauen/Installieren
      • U-Boot: Befehle
    • Flat device tree
      • Was ist ein flat device tree?
      • Device tree compiler
      • Beispiele/Dokumentation
    • Linux kernel
      • Runterladen
      • Kbuild
      • Multi Platform Unterstützung
      • Konfigurieren/Bauen/Installieren
      • Was ist uImage?
      • Den fdt bauen
      • In-tree Kernel Module bauen/installieren

Rool File Systeme

  • Verfügbare Root-File-Systeme
  • Ein minimales Root-File-System vorbereiten
  • TFTP-Server
  • Root-File-System auf Ramdisk
  • mtd
  • Root-File-System auf jffs2
  • mtdparts
  • Root-File-System auf cramfs
  • Root-File-System auf ro ext2
  • Was auf der Zielhardware andwendbar ist bauen und ausführen
  • Vergleich von Root-File-Systemen

Anpassungen

  • Das System hängt
  • pseudo tty
  • getty
  • runlevel
  • Statische IP
  • NFS mounten
  • SSH-Server

User Space Fehlersuche/-behebung

  • Einführung
    • Was ist ein Fehler?
    • Arten von Fehlern
    • Debugging-Strategie
  • Einfache Werkzeuge
    • lsof, ltrace, strace,...
    • procfs, top, netstat, syslog,...
  • Fortgeschrittene Werkzeuge
  • Was ist ein Debugger?
  • gdb
    • gdb am Host
    • gdb am Zielsystem
    • gdb Remote-Debugging
    • gdb Remote-Debugging mit GUI

User Space Profiling/Tracing

  • Profiling/Tracing Werkzeuge
    • strace
    • system timers
    • gprof
    • gcov
    • code optimization
    • oprofile
    • perf
  • top und ähnliche Werkzeuge
    • top
    • latencytop
    • powertop
    • powerdebug
  • crash

Echtzeit

  • Voraussetzungen
    • Kernel im Vergleich zu User Space
    • Toolchain
    • Program Sections
    • Interrupts
    • Reentrant Code
  • Echtzeit Einführung
    • Time/Utility Funktionen
    • Was ist Echtzeit?
    • Determinismus
    • Was ist harte Echtzeit?
  • Echtzeit-Linux
    • Hypervisor
    • Dual kernel
    • Fully preemtive kernel
    • "Grade/Stufen" des Echtzeitverhaltens
      • 0 Vanilla Linux Kernel
      • 1 explizite Präemptions-Punkte
      • 2 implizite Präemptions-Punkte
      • 3 Echtzeit Präemptions Patch
      • vollständig präemptiver Kernel
      • harte Echtzeiterweiterungen
  • Adeos/Xenomai
    • Adeos Patch
    • Xenomai
    • patchen/konfigurieren/Kernel bauen
    • Auf der Zielhardware ausführen
  • Echtzeit-Mythen
    • Echtzeit muss schnell sein
    • rate monotonisch
    • universelle Methode
    • scheduling Theorie
    • Echtzeitbetriebssystem im Vergleich zu Linux
    • Neue Hardware
    • Dual-Kernel im Vergleich zu Preempt-rt
    • Zukunftsaussichten Dual-Kernel
    • Zukunftsaussichten Preempt-rt

Bitte füllen Sie dieses Formular aus, falls Sie weitere Fragen zu diesem oder einem anderen Training haben und zögern Sie nicht, uns zu kontaktieren.

Public ELiSA

Embedded Linux: From Systems Architecture to Real-Time

public, 5-day training class
book until: 22 Dec 2018
title-1
21 Jan 2019
Munich/Germany, in German

Pick a Training

public/private, 2 to 5 day training class
book until: 19 Jan 2019
title-1
04 Feb 2019
EU, German/English (TBD)