Embedded Linux Systems Architecture

TRAININGS

Reliable Embedded Systems provides trainings to help you create better embedded software!

title-1

Embedded Linux - From
Systems Architecture to Real-Time:

Our in-depth introduction to Embedded GNU/Linux.

Read more
title-1

Embedded GNU/Linux Kernel Internals and Device Drivers:
We describe processes, concepts and commands necessary to write GNU/Linux device drivers.

Read more
title-1

The Yocto Project - An Overview:
After the training you should have a much better overview about the Yocto Project and be able to decide whether you need it or not.

Read more
title-1

Introduction to Embedded Linux and the Yocto Project:
A quick introduction to Embedded Linux (2 days), essentials to utilize the Yocto Project (3 days).

Read more
title-1

Introduction to Embedded Linux in Theory and Practice - a Crash Course:
The aim of this crash course is to provide a basic overview of embedded GNU/Linux.

Read more
title-1

(Embedded) Linux Debugging:
We'll give you a basic overview of debugging/tracing/profiling facillitites available with (embedded) GNU/Linux kernel/user-space.

Read more
title-1

Embedded Linux Hardware Interfacing:
Is it really that hard to use digital I/O, Analog I/O(pwm), Sensors/Actors, IoT and friends with Linux?

Coming soon
title-1

FreeRTOS in Theory and Practice:
Take home a working knowledge of FreeRTOS and the ability to use it effectively in your own embedded development project.

Read more
title-1

The Zephyr Project - An Overview:
Take home a working knowledge of the Zephyr Project and the ability to use it effectively in your own embedded development project.

Coming soon
title-1

FlexNgage + Training:
Add trainings as you like to the various steps of your development process.

Read more
title-1

Custom Training:
Ask for a custom training e.g. by combining stuff from various trainings or something totally new.

Read more
title-1

3rd Party Training Material:
We customize/deliver your Embedded Linux training material in English/German.

Read more

Public Events

No events

FlexNgage + Training

you can add trainings as you like to the various steps of your development process

More Detail

Products & Services

We provide flexible engagement models to enable you to leverage exactly the capabilities you need. Although our expertise lies in the domains of Embedded Systems Software (Training) the options we can offer range from consulting to full turnkey engagements. We can bring you in touch with our worldwide network of experts. They either handle everything for you or just parts of your system. This enables you and Reliable Embedded Systems to focus on their core competencies.

  • our experts can help guide you
  • we can work with you
  • we can do it for you

First in time, first in line!

Please check for available days and/or just ask.

Available days

title-1

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.

 

See who else we've trained

 

Prerequisites

  • 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 no fear to learn the above… 

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 want to figure out whether GNU/Linux might be 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*)**) 

During the training we’ll provide laptops*), boards*)**), workbooks (in English)*)**), remote access to servers and boards**), screen-sharing**), audio-bridge**).

Check out our training delivery options to see how we can present/customise our material to your specific needs. Feel free to contact us for further inquiries.

Course Outline

Introduction

  • History of Unix/Linux
  • Licensing
  • Standards
  • Working with Free Software
  • Spelunking
  • Unix Philosophy

Host playground

  • architecture
  • shell
  • FHS (file hierarchy standard)
    • Devices, Daemon, Booting, Program Sections, Static/Shared Libraries
  • permissions
    • Access Control, Changing Permissions, umask
  • hard/soft links
  • real/effective uid/gid

Process/IPC

  • Intro
    • What's an OS?
    • What's a scheduler?
    • Linux: scheduler, priorities, scheduling classes
    • process/task/thread
    • errno
    • fork
    • Process termination
    • Process states
    • Zombies
    • More about Processes
  • IPC simple
    • shell redirection, shelling out, tmpfiles
  • IPC Generic
    • Message passing vs. shared memory
  • Advanced IPC
    • pipes
    • signals
    • interrupted system calls
    • message queues
    • semaphores
    • shared memory
    • sockets
    • select/poll
  • IPC techniques to avoid

Embedded Specifics

  • Intro
  • Portability
  • Build
    • Cross/Native toolchain
    Toolchains
  • C-Libraries
    • glibc, uclibc, eglibc, others
    • reduce shared lib size

Eval Board

  • Booting
    • How does LInux boot on a PC?
    • How is an Embedded System different?
  • Booting the target
    • Boot sequence, SD card and partitions

Stuff Needed

  • Host
    • Toolkit
      • The Yocto Project
      • Install Yocto SDK
    • SD card
    • screen
    • minicom
    • tftp server
    • Root file systems
    • Nfs server
  • Target
    • U-Boot
      • Das U-Boot
      • Scripting
      • Fancy stuff
        • Spash Screen
        • U-Boot environment from Linux
        • Post mortem
        • Automatic SW update
        • How to contribute?
      • Get/Configure/Build/Install
      • Commands
    • Flat device tree
      • What is a flat device tree?
      • Device tree compiler
      • Examples/Documentation
    • Linux kernel
      • Get
      • Kbuild
      • Multi Platfrom Support
      • Configure/Build/Install
      • Get/configure/build install
      • What is uImage?
      • Build fdt
      • In-tree kernel modules

Rool File Systems

  • Available root file systems
  • prepare minimal-dev rootfs
  • tftp server
  • rootfs on ramdisk
  • mtd
  • rootfs on jffs2
  • mtdparts
  • rootfs on cramfs
  • rootfs on ro ext2
  • build/execute what's applicable from above on the target board
  • rootfs comparison

Customizations

  • System hangs
  • pseudo tty
  • getty
  • runlevel
  • static ip
  • mount nfs
  • ssh server

User Space Debugging

  • Debugging Intro
    • What's a bug?
    • Types of bugs
    • Debugging strategy
  • Simple tools
    • lsof, ltrace, strace,...
    • procfs, top, netstat, syslog,...
  • Advanced tools
  • What’s a debugger?
  • gdb
    • host gdb
    • target gdb
    • gdb remote debugging
    • gdb remote debugging with GUI

User Space Profiling/Tracing

  • Profiling/Tracing tools
    • strace
    • system timers
    • gprof
    • gcov
    • code optimization
    • oprofile
    • perf
  • top an friends
    • top
    • latencytop
    • powertop
    • powerdebug
  • crash

Real-time

  • prerequisites
    • Kernel vs. User Space
    • interrupts
    • reentrant code
  • Real-time Intro
    • What is Real-time
    • Determinism
  • Real-time Linux
    • Hypervison
    • Dual kernel
    • Fully preemtive kernel
    • 0 Vanilla Linux kernel
    • 1 explicit preemption points
    • 2 implicit preemption points
    • 3 real-time preemption patch
    • fully preemptive kernel
    • hard real-time extensions
  • Adeos/Xenomai
    • adeos patch
    • xenomai
    • patch/config/build kernel
    • run it on board
  • Real-time myths
    • must be fast
    • rate monotonic
    • universal methodology
    • scheduling theory
    • RTOS vs. Linux
    • New hardware
    • Dual kernel vs. Preempt-rt
    • Future outlook Dual kernel
    • Future outlook Preempt-rt

Please fill in this form if you have further questions regarding this or any other training and do not hesitate to contact us if you have any further questions.