Anmeldung beendet
Info
Please see below for English version.
Embedded Linux - Von Systemarchitektur zu Echtzeit
Der Zweck dieses Kurses ist es, einen grundlegenden Überblick über Embedded Linux, Interprozesskommunikation sowie Echtzeit mit Linux zu geben.
- Wie passen die (Puzzle) Teile zusammen?
- Welche Komponenten werden zum Aufbau eines Embedded Linux-Systems benötigt?
- Woher bekommt man sie und wie werden sie konguriert/gebaut/installiert?
- Woher kann man Hilfe bekommen?
- Wie sieht es mit Lizenzen aus?
- Echtzeit
Praktische Übungen vermitteln Ihnen die notwendige praktische Erfahrung um, nach einem erfolgreichen Abschluss dieses Kurses, Ihr eigenes Embedded Linux System entwickeln zu können.
Dieses Seminar können Sie auch als Online-Privat-Seminar buchen! Schreiben Sie uns einfach eine unverbindliche Mail mit Ihrem Wunschtermin und Ort mit Anzahl der Teilnehmer: training@eclipseina.com
Wir bieten auch ein eigenes Seminar zum Yocto Projekt an.
Blättern Sie durch den Seminarkatalog der Embedded Academy, um viele weitere hochwertige Trainings zu entdecken!
Zielgruppe
Manager, Projektmanager, Software-, Hardware-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Techniker und andere an der Technologie interessierte Personen, die möglichst schnell verstehen wollen, wie Embedded Linux funktioniert.
Voraussetzungen
- Grundlegende Vertrautheit mit der Verwendung eines Linux-Systems (z.B. Ubuntu) als Endbenutzer im user space
- Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
- Vertrautheit mit Konzepten und Programmierung in C für eingebettete Systeme
- Fähigkeit, Software mit C-Syntax zu entwickeln Grundlegende Vertrautheit mit der Verwendung von Embedded-Prozessor-Entwicklungsboards
Inhalte des Seminars
1. Tag:
- Einführung
- Geschichte von Unix/Linux | Lizenzen | Standards | Mit freier Software arbeiten | "Spelunking" | Die Unix Philosophie
- Host-Spielplatz
- Architektur | Shell | Benutzer | su | FHS (file hierarchy standard) | Daemon | statische/shared Bibliotheken | Berechtigungen | Zugriffskontrolle | umask | harte/weiche Links | Mehr Berechtigungs-Bits | Framework zum Kompilieren | echte/effektive uid/gid
2. Tag:
- Prozess und Interprozesskommunikation
- 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 | Sehen wir uns Prozesse an
- Einfache Interprozesskommunikation
- Shell-Umleitung | Shelling out | temporäre Dateien
- Fortgeschrittene Interprozesskommunikation
- generisch | Pipe | Signal | Unterbrochener Systemaufruf | Nachrichtenwarteschlange (Message Queue) | Semaphor | Mutex | gemeinsam genutzten Speicher (Shared Memory) | Socket | select | poll
- Andere Interprozesskommunikations-Mechanismen | Interprozesskommunikations-Techniken die man vermeiden sollte
- Besonderheiten von "Embedded"
- Linux auf dem Desktop im Vergleich zu Linux auf einem Eingebetteten System | Software Release | Portierbarkeit | Bauen (Cross-/Native Toolchains) | Toolchains/Build-Systeme (crosstool-NG | buildroot | BitBake) | C-Bibliotheken | ...
3. Tag:
- Eval Board
- Einführung | Wie booted Linux auf einem PC und auf dem Eval Board? | Bootsequenz | Partitionen auf der SD Karte | Sehen wir wie es booted
- Was man so braucht
- Host
- Werkzeugkasten
- Das Yocto-Projekt | Der YP Autobuilder | Das Yocto SDK installieren
- Vorbereitung der SD-Karte | Terminal-Emulation
- screen | byobu | minicom
- Server
- tftp | NFS
- Root file Systeme
- Werkzeugkasten
- Zielsystem
- git | u-boot
- Scripting | Schickes Zeug | Runterladen | Kongurieren | Bauen | Installieren | Variablen und Befehle
- Flat device tree (fdt)
- Was ist ein fdt? | Device Tree Compiler | Beispiele
- Linux kernel
- Runterladen | Konfigurieren - kconfig | Bauen - kbuild |
- fdt
- Bauen | Installieren
- Kernel Module
- Bauen | Installieren
- git | u-boot
- Host
4. Tag:
- Root File Systeme
- Ein minimales Root-File-System vorbereiten | Erinnern Sie sich and den tftp Server?
- ramdisk | mtd | jffs2 | mtdparts | cramfs | roEXT2 | Vergleich von Root-File-Systemen
- Anpassungen
- Anpassungen: Das System hängt | pseudo tty | getty | runlevel | Statische IP | mount nfs | ssh Server
- User Space Fehlersuche/-behebung
- Was ist ein Fehler/Debugging? | Arten von Fehlern | Debugging-Strategie
- Einfache Werkzeuge
- lsof | ltrace | strace | procfs | top | netstat | syslog | ...
- Fortgeschrittene Werkzeuge
- Was ist ein Debugger?
- gdb: gdb auf Zielhardware | gdb Remote-Debugging
- JTAG Debugging (optional)
- JTAG | JTAG Setup | u-boot vor der Relokation | andere Möglichkeiten
- Profiling/Tracing
- Profiling im Vergleich zu Tracing
- Profiling/Tracing Werkzeuge: strace | System-Timer | gprof | gcov | perf
- top und ähnliche Werkzeuge: top | powertop | powerdebug
- crash - gdb on steroids
5. Tag:
- Voraussetzungen
- Kernel im Vergleich zu User-Space | "Program Sections" | Interrupts | Reentrant Code
- Echtzeit Einführung
- Was ist Echtzeit? | Was ist harte Echtzeit?
- Echtzeit Linux
- Hypervisor | Dual Kernel | Voll präemptiver Kernel
- "Grade/Stufen" des Echtzeitverhaltens
- explizite/implizite Präemptions-Punkte | Echtzeit Präemptions Patch | Voll präemptiver Kernel | harte Echtzeiterweiterungen
- (optional) Kernel patchen/konfigurieren/bauen | auf dem Board ausführen
- Dual Kernel
- RTLinux | RTAI | Xenomai
- Xenomai im Vergleich zu RTAI | Adeos | Xenomai Architektur/SW Stack/Skins
- (optional) Kernel patchen/konfigurieren/bauen | auf dem Board ausführen
- RTLinux | RTAI | Xenomai
- Messergebnisse: Nicht Echtzeit Kernel | Voll präemptiver Kernel | Dual Kernel (Xenomai)
- Echtzeit Mythen
Technische Voraussetzungen für die Teilnahme an einer Remote Schulung
- (ship-it/Web/Host/Zielhardware/Telefon) E-Mail-Adresse, um Login Informationen zu erhalten.
- (Web) Screen Sharing/Audio/Video/Whiteboard/Chat/Fragen&Antworten: https://www.bigmarker.com erfordert dies: https://rlbl.me/bm-req.
- Backup: (Web)/Audio (Telefon) Telefonkonferenz: https://www.turbobridge.com/international.html
- (Host/Zielhardware) Shell: Port 22 nicht blockiert: so etwas wie: ssh @vlabx.dyndns.org
- Backup: (Host/Zielhardware) Shell über Browser: Port 443 nicht blockiert: so etwas wie: https://vlabx.dyndns.org
Veranstalter:
Eclipseina GmbH | Embedded Academy
Technologiezentrum TechBase
Franz-Mayer-Straße 1
93053 Regensburg
Tel.: +49 941 / 462 974 20
Fax: +49 941 / 462 974 30
--------------------------------------------------------------- English ---------------------------------------------------------------
From Systems Architecture to Real-Time
The aim of this course is to provide an understanding of the essentials of embedded Linux, interprocess communication and how to add Real-Time capabilities to Linux.
- How do the bits and pieces fit together?
- What components are needed to build an embedded Linux system?
- Where to get them from and how to configure/build/install them?
- Where to get help from?
- What about those software licenses? /> Interprocess Communication basics /> Real-Time Hands-on exercises provide you with the necessary practical experience to go ahead and develop your own embedded Linux systems after completing this training successfully.
You can also book this seminar as an online-private-seminar! Just write us a short non-binding e-mail with the desired date and location as well as the number of participants: training@eclipseina.com
We also offer a training on the topic of the Yocto Project.
Get an overview of all our seminars on embedded-academy.com!
Target Group
Managers, project managers, software-, hardware-, development-, systems engineers, testers, administrators, technicians and other parties interested in the technology, who want to understand as quickly as possible how Embedded Linux works.
Prerequisites
- Basic familiarity with using a Linux system (e.g. Ubuntu) as an end user in user space
- Basic familiarity with a command line shell
- Familiarity with embedded C concepts and programming
- Ability to develop software using C syntax
- Basic knowledge concerning embedded processors and development boards
- ...and/or no fear to learn more of the above...
Training Content
1st day:
- Introduction
- History of Unix/Linux | Licensing | Standards | Working with Free Software | Spelunking | Unix Philosophy
- Host playground
- architecture | shell | user | su | FHS (file hierarchy standard) | daemons | static/shared libs | permissions | access control | umask | hard/soft links | more permission bits | compile framework | real/effective uid/gid
2nd day:
- Processes and Inter Process Communication
- Linux architecture | What’s an operating system? | What’s a scheduler? | Linux: scheduler(s)- priorities - scheduling classes | process - task - thread | errno | fork | process termination | process states | zombies | Let’s watch processes
- simple IPC
- shell redirection | shelling out | tmpfiles
- advanced IPC
- generic | pipe | signal | interrupted system call | message queue | semaphore | mutex | shared memory | socket | select | poll
- other IPC methods | IPC techniques to avoid
- Embedded Linux Specifics
- Embedded vs. Desktop| Software Release | Portability | Build (cross/native toolchain) | Toolchains/Build Systems (crosstool-NG | buildroot | BitBake) | C-Libraries
3rd day:
- Eval Board
- Intro | Booting Embedded vs. PC | Boot Sequence | SD card partitions | See it booting
- Stuff needed
- host
- Toolkit
- The Yocto Project | The YP autobuilder | Install the Yocto SDK
- SD card preparation | terminal emulation
- screen | byobu | minicom
- servers
- tftp | NFS
- root file systems
- Toolkit
- target
- git | u-boot
- scripting | fancy stuff | checkout | config | build | install | variables and commands
- fdt (flattened device tree)
- what is a fdt? | device tree compiler | examples
- kernel
- checkout | config - kconfig | build - kbuild
- fdt
- build | install
- kernel modules
- build | install
- git | u-boot
- host
4th day:
- Root File Systems
- prepare minimal rootfs | remember tftp server?
- ramdisk | mtd | jffs2 | mtdparts | cramfs | roEXT2 | rootfs comparison
- Customizations
- system hangs | pseudo tty | getty | runlevel | static ip | mount nfs | ssh server
- User Space Debugging
- What is a bug/debugging | Types of bugs | Debugging strategy
- Simple Tools
- lsof | ltrace | strace | procfs | top | netstat | syslog | ...
- Advanced Tools
- What’s a debugger?
- gdb: target gdb | gdb remote debugging
- JTAG Debugging (optional)
- JTAG | JTAG setup | u-boot before relocation | other possibilities
- Profiling/Tracing
- Profiling vs. Tracing |
- Profiling/Tracing tools: strace | system timers | gprof | gcov | perf
- top and friends: top | powertop | powerdebug
- crash - gdb on steroids
5th day:
- Real-Time
- prerequisites
- kernel vs. user space | program sections | interrupts | re-entrant code
- Real-Time Intro
- What is Real-Time? | What is hard Real-Time?
- Real-Time Linux
- Hypervisor | Dual kernel | Fully Preemptive Kernel
- Degrees of Real-Time behavior
- explicit/implicit preemptionpoints | real-timepreemptionpatch | fullypreemptive kernel | hard real-time extensions
- (optional) patch/config/build kernel | run it on board
- Dual Kernel
- RTLinux | RTAI | Xenomai
- Xenomai vs. RTAI | Adeos | Xenomai architecture/SW stack/skins
- (optional) patch/config/build kernel | run it on board
- Measurement results: non real-time kernel | preempt-rt kernel | Dual Kernel (Xenomai)
- RTLinux | RTAI | Xenomai
- Real-Time Myths
- prerequisites
Technical requirements to attend a remote/online training
- (ship-it/web/host/target/phone) e-mail address to get login credentials
- (web) screen sharing/audio/video/whiteboard/chat/Q&A: https://www.bigmarker.com requires this: https://rlbl.me/bm-req.
- backup: (web)/audio (phone) conference call: https://www.turbobridge.com/international.html
- (host/target) shell: port 22 not blocked: something like: ssh @vlabx.dyndns.org
- backup: (host/target) shell via browser: port 443 not blocked: something like: https://vlabx.dyndns.org
Organiser:
Eclipseina GmbH | Embedded Academy
Technologiezentrum TechBase
Franz-Mayer-Straße 1
93053 Regensburg
Tel.: +49 941 / 462 974 20
Fax: +49 941 / 462 974 30
Veranstaltungsort
Technologiezentrum TechBaseEclipseina GmbH im 1. Stock
Franz-Mayer-Straße 1
93053 Regensburg | 09:00 - 17:00
Deutschland
Koordinaten (Lat, Long):
49.002216, 12.100555
Karte anzeigenRoutenplanung