Embedded Systems and Applications


Stéphane Lavirotte


The aim of this course is to present the inner workings of operating systems to deploy and optimize it for particular targets (cell phones, development kit, etc.). To make things more concrete and to have practical experiments, we use the Linux system.

After a quick overview of the architecture of an operating system, we will study and practice the virtualization system, adapting a system to a specific target, the development of modules and drivers. An experiment on the target board will complete this course.


The objective is to enable students to master advanced concepts of operating systems for embedded computing. They will discover the secrets of an operating system and learn to adapt to their specific needs for business models or new devices.

Course Outline

This course is 35 hours long and is divided as follows:

  • Introduction and architecture of Operating Systems, S. Lavirotte (Lecture)
  • Linux Kernel and System Calls, S. Lavirotte (Lab 4h)
  • Adding new functionalities to kernel: the modules, S. Lavirotte (Lecture, Lab)
  • Free Software for Embedded Systems, S. Lavirotte (Lecture, Lab)
  • Linux Embedded Systems, S. Lavirotte (Lecture, Lab)
  • Final Exam


The total resources required for these labs and corrections can be found at the following address:

Prerequisites for this course

  • C language (no assembly programming needed).
  • Knowledge of Unix systems and especially Linux