Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- History of Unix/Linux
- Free Software
- The Unix Philosophy
HOST PLAYGROUND
- Exploring GNU/Linux
- Architecture
- Shell operations
- Permissions
- FHS (File Hierarchy Standard)
- Hard and soft links
- Real vs. effective UID/GID
- Scheduler
- Processes, tasks, and threads
- IPC (Inter-Process Communication): Simple and Advanced
- Pipes
- Signals
- Message queues
- Semaphores
- Shared memory
- Sockets
- Select/Poll
- IPC techniques to avoid
- Host Linux Setup
- Yocto/ELDK (cross-target tools, libraries, packages)
- Terminal Emulation
- Servers (DHCP, TFTP, NFS)
TARGET PLAYGROUND
- Files required to run software on the board
- JTAG/BDI configuration
- U-Boot (checkout, config, build)
- Kernel (checkout, config, build)
- Root file system (rootfs)
- Flat Device Tree
- Build and execute applicable components on the target board
- Various root file systems
- CRAMFS
- Ramdisk
- MTD
- JFFS2
- Ext2 (Read-only)
- UBI
- Build and execute applicable components on the target board
- Comparison of root file systems
- Debugging
- Simple tools
- Local vs. remote debugging
- User vs. kernel space debugging
- GDB
- GDBServer
- JTAG/BDI (optional)
- Profiling
- gprof
- Gcov
- Oprofile
REAL-TIME
- Prerequisites
- Interrupts
- Reentrant code
- Real-time Linux
- Explicit and implicit preemption points
- Real-time preemption patch
- Fully preemptive kernel
- Hard real-time extensions
- Adeos/Xenomai
- Adeos patch
- Xenomai
- Kernel patch/config/build
- Running on the board
SOFTWARE RELEASE
- Administration
- Development
- How to reproduce a software release?
MISCELLANEOUS
- getopt
- Endianness
- Cheat sheets
Except where otherwise noted, content in this course outline is licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requirements
- Basic familiarity with using a GNU/Linux system (e.g., Ubuntu) as an end-user in user space
- Basic familiarity with a command-line shell
- Basic knowledge of user-space/application development with GNU/Linux
- Basic understanding of embedded processors and development boards
- Basic C programming knowledge
- ...or simply the willingness (or fear) to learn the above
35 Hours
Testimonials (3)
The trainer's presentation and way of communicating.
Gianpiero Arico - Urmet Spa
Course - Embedded Linux Systems Architecture
I enjoyed having done full days of courses
Gianluca - Urmet Spa
Course - Embedded Linux Systems Architecture
Maybe more exercises could be better for lerning but the time was to little