I am associate professor at Ensimag, IHMO one of the best place to learn and teach computer science in France. I am teaching mainly operating systems at the Master level.

Operating Systems and concurrent programming

In addition to basic system concepts (file, process, interrupts, etc.), this lecture introduce concurrent programming.

The students implement a shell and a multhreaded application as homework. I tried to vary the subjects using multiple variants and provides immediate feedback of the quality of the code by providing automated tests.

Previously the student implemented, in addition, a (kernel) memory allocator and a MPI distributed application.

details about the practical

- automatic makefile generation: cmake
- full automatic tests: google test library, ruby pexpect. The goal is to give some feedback to every student.

Operating System Design

Write our own Operating System from scratch

This particular project exists from numerous years at Ensimag. It consists to write from scratch a operating system for x86 (PC): processes, memory, communications, synchronisations. In the old ages of the 20th century, students wrote it top-down on Motorola 68000, then on PC. At the beginning of the 21th century, we switch to a bottom-up approach and then add virtual memory recently.

The projet is now done along the Operating System Design course.

Before 2016

This lecture presented the basic of system architecture and design, mainly around IO, virtual memory, OS structure, multi-core management in Linux, Windows and Android particularities. Some time is also spend to practice few practical points, eg. mmap, futex and atomic operations.

Former Teaching


I was converted to IPv6 now ! point of view by a talk of Stéphane Brotzmeyer . Every IPv4 useful features are in IPv6 in a well integrated manner. In short, teaching IPv4 is just confusing and should be as restricted as possible.

System Security and Network Administration

This lecture was common with the computer science master of UJF. It revisits OS and network basic concepts from the administrator point of view. A part was also dedicated to advanced scripting in Perl.