FACOLTA' DI INGEGNERIAUniversita' di Pavia
Home
  Teaching > Course1112 > Real-Time Linux Systems Translate this page in English
About the Faculty
Orientation
Teaching
Research
Services
Industry partnerships
Mobility Erasmus
Shortcuts
Search in this site
Real-Time Linux Systems

2011-12 Academic year

Lecturer: Alessandro Rubini  

Course name: Real-Time Linux Systems
Course code: 503106
Degree course: Ingegneria Informatica
Disciplinary field of science: ING-INF/05
L'insegnamento è caratterizzante per: Ingegneria Informatica
University credits: CFU 6
Course website: http://gnudd.com/srt-2011

Specific course objectives

The course is meant to teach the design techniques and low-level programming skills in order to work with both the Linux kernel and OS-less microcontrollers -- or, with a self-written OS. Such environments are the ones used in the industrial world, to address problems where time-related requirements are included in the specification, the so-called real-time systems. In both cases the programming language is C, and the reference development platform is the GNU environment (gcc, make, bash, git, ...) After the course, the student should be able to design and implement a real-time system to solve simple control problems, as well as write kernel modules for Linux that drive simple peripheral devices.

Course programme

C language for low-level programming

The git version management system

The development environment

Execution contexts and cross-compilation

Operating systems for micro-controllers

Compiling the Linux kernel and its modules

Virtual memory

Concurrency issues

Time management

Kernel panics and debugging

Real-time concepts

The RT extensions to Linux

Course entry requirements

Experience as a GNU/Linux user or more generally Unix (i.e., command line use)

Basic knowledge of computer architecture

Personal attitude towards solving programming problems

Feeling enjoyment in writing programs

Course structure and teaching

Lectures (hours/year in lecture theatre): 45
Practical class (hours/year in lecture theatre): 0
Practicals / Workshops (hours/year in lecture theatre): 0

Suggested reading materials

See the web page for references. No book is mandatory: the source code is with you and grep is your best friend.

Testing and exams

The exam is a written test and a programming taks.

The written test is made up of 8 questions on embedded gnu/linux and real-time systems; it also includes a scheduling exercise.

The programming task is the solution of a specific problem, agreed between teacher and student, on micro-controllers or the linux kernel. Writing this program is mandatory in order to pass the exam. Each programming task is counted 1 to 3 points, to be added to the resul of the written test. The maximum score associated to a project (1 to 3) depends on how difficult the project is. The assigned score depends on how work has been accomplished (most of the time the maximum is confirmed).

The teacher offers a range of programming tasks to choose from, but students may suggest and solve different tasks, according to their own interests.

Copyright © Facoltà di Ingegneria - Università di Pavia