INF583 —
Operating Systems
Principles and Programming
École Polytechnique
Master 1 —
Computer Science and Electrical Engineering
-
- Reference in the course directory.
- Lectures:
Albert Cohen.
- Labs:
Guillaume Quintin and Albert Cohen.
Overview
-
This course introduces the principles and design of modern operating
systems (internal view) as well as operating system programming
interfaces (external view). The course covers topics in concurrency,
resource abstraction and virtualization, and their translation into
operating system components (processes, memory management, file
systems, communication). We will deconstruct the links between the low
level components of the kernel and higher level services, considering
key notions in concurrency, modularity and protection. We will also
learn how to write programs that interact with operating systems. The
course will conclude with introductory presentations about active
research and innovation areas in virtual machines and mobile embedded systems.
-
Main textbooks and documentation.
-
A. Silberschatz and P. Galvin.
Operating
System Concepts. Eight Edition, John Wiley & Sons, 2008
(you may download a few online chapters). The Seventh
Edition is still very relevant, and comes with a more
applied Java-oriented book (algorithm examples in Java, not
Java system API).
-
D. P. Bovet and M. Cesati.
Understanding the
Linux Kernel. Third Edition, O'Reilly, 2005.
(Requires an advanced level in the C programming language.)
-
C. Blaess.
Programmation
Système en C sous Linux. Third Edition, Eyrolles, 2005.
(In French.)
-
C. Blaess.
Shells
Linux et UNIX par la pratique. Eyrolles, 2008. (In French.)
Online resources:
UNIX
quick reference: Bourne shell, UNIX commands;
-
M. Mitchell, J. Oldham, and A. Samuel.
Advanced Linux
Programming, by CodeSourcery LLC (now Mentor Graphics),
published by New Riders Publishing under a free license, 2001.
Also partly available in
French
(translation in progress).
Course Material
-
The slides are in English and present the main concepts and design
issues about modern operating systems, with an emphasis on the POSIX
programming interface and the Linux kernel. Reference information can
be found in the GNU/Linux "
man pages" (introduced in the
first lab). The following documents are in French; they will be
distributed at the first course.
- Slides:
Term Exam
No term exam in 2012. Instead, two labs will be completed with
graded home assignments. An oral test will be based on these labs, and
it will be completed with additional questions. The students are
encouraged to work in pairs for the home work, but the oral
examination is individual. The duration of the oral test is 30mn. The
grade evaluates evenly the home assignments and oral test.
Past exams.
Note: the course had a slightly different contents
before 2009, focusing more on system programming.
Labs and Project
The labs are in French for now. Based on student feedback, we will
consider translating them to English.
Les sujets de TDs.
Aide en ligne (synthétique et imprimable)
de Christophe Blaess:
Additional Documentation