Advanced Operating Systems
This is the home page for the "Advanced OS" course.
Here, you will find (in a badly-organised form) all the
material, slides, and information needed to attend the course
For the previous editions of the course, check the old websites (2018 and 2019).
Lessons:
- First lesson: 2021/04/06, 14:00 -> 16:30 (videos of the
first part and
second part
of the lesson, in italian)
- Introduction to the course
- Introduction to real-time operating systems
- Second lesson: 2021/04/13, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- Discussion about the kernel latency and how to reduce it
- Third lesson: 2021/04/20, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- Real-Time kernels, again
- Real-Time in user space (using PI instead of HLP for protecting the kernel's critical sections): Preempt-RT
- Discussion about uKernels vs coKernels
- Simple example of coKernel system (Xenomai)
- Fourth lesson: 2021/04/27, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- Using uKernels in practice: example with l4re
- About uKernels, coKernels, nanoKernels and... Hypervisors
- Some more details about uKernel-based systems (capability systems, etc...)
- Fifth lesson: 2021/05/04, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- From nanoKernels to hypervisors
- Recalling some basic concepts about virtualization
- Bare-metal hypervisors vs Hosted hypervisors
- About Xen, paravirtualization and similar amenities
- Trap & Emulate: basic example
- Sixth lesson: 2021/05/11, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- Loading and parsing kernels in bare-metal hypervisors
- Discussion about bare-metal vs hosted hypervisors, again
- Example of hosted hypervisor (based on Intel VT-x)
- Seventh lesson: 2021/05/18, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
- Hosted hypervisors and Intel VT-x, again: some experiments
with the example
- Hypervisors and Virtual Machine Monitors: KVM and QEMU
- Some discussion about real-time virtualization
- Eighth lesson: 2021/06/01, 9:30 -> 12:00 (videos of the
first part and
second part
of the lesson, in italian)
Project Ideas
Here are some ideas for possible projects
for the exam. Remember to contact me when you chose one.
Slides and References:
Examples:
Useful Links:
- The Linux kernel
- The Preempt-RT patchset
- Dual-kernel systems: Xenomai,
EVL,
RTAI
- Microkernels: l4re,
sel4,
Genode,
GNU Hurd (based on
Mach),
Google Zircon (note: "handles" are similar to capabilities),
...
- Hypervisors: Xen,
ACRN,
Jailhouse,
...
- Some standards about executable formats
(useful to implement a loader / ELF parser in a hypervisor or microkernel)
- Some lightweight VMs / VMMs using KVM (see also QEMU's microvm):
the Intel cloud hypervisor,
Amazon's FireCracker, ...
- The Rump Kernels, useful for example to build unikernels based on openbsd source code. Notice that the
rumpkernel.org
site seems to be down