Embedded Linux Systems Architecture
- 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 knowledge concerning embedded processors and development boards
- Basic C programming knowledge
- …and/or or fear to learn the above…
Course Objectives
To provide an understanding of the essentials of embedded GNU/Linux, how the bits and pieces fit together. What components are needed to build an embedded GNU/Linux system, where to get them from and how to configure/build/install them? Where to get help from? What about those software licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and develop your own embedded GNU/Linux systems after completing this training successfully.
Description
This five 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. The philosophy, concepts and commands necessary to make effective use of GNU/Linux are described through a combination of theory and on-the-job training.
Don't reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of GNU/Linux and the ability to use it effectively in your own embedded development project.
Who should attend?
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 GNU/Linux works. You must use GNU/Linux or you have to luxury to decide whether it makes sense to use it or not. Maybe you already tried to use Embedded GNU/Linux, but are not quite sure that you did everything the right way. You currently use a different operating system and wand to figure out whether GNU/Linux might better and/or cheaper.
Delivery Options
All the training material is English, but the presentation of it can be in English or in German, as you wish, worldwide.
- on-site - instructor driven
- on-line - instructor driven
- on-site/on-line combination - instructor driven
Introduction
- History of Unix/Linux
- Free Software
- Unix Philosophy
HOST PLAYGROUND
- Play with GNU/Linux
- architecture
- shell
- permissions
- FHS (file hierarchy standard)
- 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
- Yocto/ELDK (cross/target tools, libraries, packages)
- Terminal Emulation
- Servers (DHCP, tftp, NFS)
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
- build/execute what's applicable from above on the target board
- various rootfs
- CRAMFS
- ramdisk
- MTD
- JFFS2
- roEXT2
- ubi
- build/execute what's applicable from above on the target board
- comparison of root file systems
- debugging
- simple tools
- local/remote
- user/kernel
- gdb
- gdbserver
- JTAG/BDI (optional)
- profiling
- gprof
- gcov
- oprofile
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
SW RELEASE
- administration
- development
- how to reproduce an SW release?
MISC
- getopt
- endianess
- cheat-sheets
Except where otherwise noted content on this course outline is licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).