Agenda for Training course Embedded GNU/Linux Systems Architecture
This 5-day training class uses hands-on exercises combined with instruction to illustrate the concepts of embedded GNU/Linux. It is designed to bring you quickly up to speed. We describe the philosophy, concepts and commands necessary to make effective use of GNU/Linux through a combination of theory and on-the-job training. Don't reinvent the wheel, but learn from our experience and take home a working knowledge of GNU/Linux and the ability to use it effectively in your own embedded development project.
Prerequisites
- Basic familiarity with using a GNU/Linux system as an end user
- Basic familiarity with a command line shell
- Basic C programming knowledge
Who should attend?
Those who are interested in or tasked with developing embedded GNU/Linux like software engineers, field engineers, (project) managers.
Course Outline
Introduction
- History of Unix/Linux
- Free Software
- Unix Philosophy
Host Playground
Play with Linux
- architecture
- shell
- permissions
- FHS
- hard/soft links
- real/effective uid/gid
- scheduler
- process/task/thread
- IPC simple/advanced
- pipes
- signals
- message queues
- semaphores
- shared memory
- sockets
- select
- poll
- IPC techniques to avoid
Host Linux setup
- ELDK
- cross/target tools
- libraries
- packages
- Terminal Emulation
- Servers
Target Playground
files needed to run something on board
- JTAG/BDI config
- u-boot (checkout, config, build)
- kernel (checkout, config, build)
- rootfs
- flat device tree
- run on board
various rootfs
- CRAMFS
- ramdisk
- MTD
- JFFS2
- roEXT2
- comparison
Debugging
- simple tools
- local/remote
- user/kernel
- gdb
- gdbserver
- JTAG/BDI
Profiling
Real-Time
Prerequisites
- interrupts
- reentrant code
Real-time Linux
- explicit/implicit preemption points
- real-time preemption patch
- fully preemptive kernel
- hard real-time extensions
Adeos/Xenomai
- adeos patch
- xenomai
- patch/config/build kernel
- run it on board
Software Release
- administration
- development
- how to reproduce a SW release?
Misc
- getopt
- endianess
- cheat-sheets