Skip to main content

Linux for embedded systems

Course description

The course Linux for embedded systems is designed to teach developers how to customize and use the Linux operating system in embedded systems. Participants learn by doing - with several practical exercises and examples. Linux system architecture with the most important subsystems and their functionality is described together with the tools needed for development.

Both theory and exercises follow the natural steps of deploying a new target system: We start with the bootloader, continue with the kernel, and then add a fully functional root filesystem.

The course is based on 15 years of experience in courses for Linux in embedded systems as well as experiences from more than 50 development projects. We share many of our experiences.

The exercises are normally based on standard ARM-based target systems but can, for local customer-specific courses, be adapted to customer-specific target systems.

The course is normally given in Swedish, but all course material is in English. The course is given in English on request.

GOALS
  • To gain a basic understanding of the Linux kernel with its subsystems and the most important system services
  • To learn, based on a common use case, how to integrate an embedded Linux system
  • Learning to use Linux in an embedded system
TARGET AUDIENCE

The Linux course is aimed at programmers and system developers who are new to Linux in embedded systems.

PREVIOUS KNOWLEDGE
  • Experience from development of embedded systems
  • Experience programming in C Basic use of Linux
DAYS

3

PRICE

SEK 21 000

COURSE MOMENTS 

20-22 september 2023, Kista inga platser kvar

22-24 november 2023, Kista

LANGUAGE

Swedish, in English by agreement

To signup

Course content

1

Introduction

Linux background
Open source licensing
Linux kernel development
Linux distributions and build frameworks
Embedded systems and Linux
Embedded development
2

Linux System Overview

Execution model
The process scheduler
The virtual file system
The I/O scheduler
The memory manager
Inter process communication
The network stack
Device drivers and modules
RTOS to Linux migration
3

Tools

Development environment
System analysis tools
4

Building and booting the kernel

System startup
The boot loader
Building the Linux kernel
Kernel boot
5

Root fs and User space initialization

Root fs overview
Root fs contents
Root fs creation
User space initialization
6

Kernel modules and device drivers

Kernel modules
Device drivers
/proc fs interface
udev
Interrupt handling
7

Linux and real-time

What is real-time
The PREEMPT_RT patch
Real-time system design

Exercises

U-Boot
Linux kernel
Root filesystem
Development with tftp/NFS
Application
Module
Driver
GPIO and interrupt