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.
|