Advanced Operating Systems and Virtualization
Academic Year 2017/2018
- Extraordinary Exam Session: March 22, 2019 @ Room A5 via Ariosto 25, 03.00 pm - results
- Fifth Exam Session: February 13, 2019 @ Room 8 via Eudossiana 18, 09.00 am
- Fourth Exam Session: January 18, 2019 @ Room 8 via Eudossiana 18, 10.00 am - results
- Extraordinary Exam Session: October 23, 2018 @ Aula Magna via Ariosto 25, 10.00 am - text - results.
- Third Exam Session: September 21, 2018 @ Room 29 via Eudossiana 18, 10.00 am - text - results.
- Second Exam Session: July 20, 2018 @ Room 29 via Eudossiana 18, 10.00 am - text - results.
- First Exam Session: June 28, 2018 @ Room 29 via Eudossiana 18, 10.00 am - text - results.
- The benchmark for the project has been published.
- The course is over. You can give an anonymous feedback on the lectures.
- Homework Assignment: You have the opportunity to gain up to 3
points on the final exam mark by preparing an essay on the rootkit
module which we have seen in action in class. The essay should describe
from a high-level point of view what the module is doing, what
kernel subsystems are involved, and why it is actually working.
A code commentary, explaining what the statements in all the functions
do is then required. You should submit the essay via email to the
instructor before taking the written test. The latest deadline is the second exam session.
- April 14, 2018 Written Test Results have been published.
- The assignment for this year’s project has been released.
See here for details.
- Lectures on Friday 30 and April 3 are canceled for the Easter break.
- We have a larger classroom!
From Tuesday March 13, we move to San Pietro in
Vincoli, according to the new schedule below.
On Friday March 9, we’re still in room A3.
- Due to bad weather conditions, the University has canceled all teaching
activities on February 27. The first lecture will be on March 2.
- Lectures will start on February 27, 2018.
- Lecture hours:
- Tuesday, 08.00–10.00 (Room 8, SPV)
- Friday, 08.00–11.00 (Room 39, SPV)
Course Objectives and Exam Rules
The Advanced Operating Systems and Virtualization course (6 CFUs) aims at presenting
advanced design/implementation methods and techniques for modern Operating
Systems, including the support for system virtualization, and several security
The topics dealt with in the course are bound to case studies oriented to Linux
systems and x86 processors. During the course, we will see the internals from
Linux 2.4, 2.6, 3.0, and 4.0.
The course requires basic knowledge of the organisation and services offered by
modern Operating Systems, of data structures, and of C/assembly programming.
Some insights on the x86 computing architectures will help at bootstrapping the
new topics shown in the course.
The exam consists of a written test and a practical project. The project
requires the student to develop some new services within the Linux kernel.
The specifications of the project for the year 2017/2018 can be found
here. The software to test and to perform the performance evaluation can be found here.
After a student has passed the written test, a one-year grace period to hand
off the project is granted. The final mark is the weighted average of the scores
obtained at the written test and at the project. The written test is worth 2/5
of the final mark, while the project is worth 3/5 of the final mark.
Rejecting the final mark is possible, but requires the student to pass the written
- Booting on an x86 System
- Memory Management
- Virtual File System
- Process/Threads Management
- Kernel API (e.g., System Calls)
- Interrupt Management
- Kernel Data Structures
- How to make a portable Kernel
- Additional Kernel Facilities
- Loadable Kernel Modules
- Kernel Debugging
- Hot Patching
- Operating systems security aspects
- Authentication and abilitation
- Protection domains and secure operating systems
- System internal attacks and countermeasures
- IDS and Reference Monitor architectures
- System Virtualization
- Basic Techniques for System Virtualization
- Support for the Guest System Execution Flow
Slides and Material
- William Stallings, Operating Systems. Jackson Libri.
- Abraham Silberschatz, Peter B. Galvin, Operating Systems. Addison - Wesley.
- Andrew S. Tanenbaum, Modern Operating Systems. Jackson Libri.
- Alessandro Rubini, Jonathan Corbet, Linux Device Drivers, O’Reilly.
- David A. Rusling, The Linux Kernel.
- Mel Gorman, Understanding the Linux Virtual Memory Manager. Prentice Hall.
- Daniel P. Bovet, Marco Cesati, Understanding the Linux Kernel. O’Reilly.