Advanced Operating Systems and Virtualization (6 CFU)
Laurea Magistrale in Computer Engineering

Lecturer: Francesco Quaglia


NEW

24/10/2017 - Results of the examination held on 13-10-2017

7/9/2017 - Results of the examination held on 4-9-2017

24/5/2017 - The examination scheduled on 4/9/2017 will be held at 11:45 AM - Room 33 (Via Eudossiana)

28/6/2017 - Results of the examination held on 28-6-2017

12/6/2017 - Results of the examination held on 8-6-2017

5/6/2017 - Results of the examination held on 29-5-2017

24/5/2017 - The examination scheduled on 29/5/2017 will be held at 9:30 AM - Room 204 (Building Ex Poste)

15/5/2017 - The additional examination has been scheduled for June the 8-th - 4 PM - Room B2

21/4/2017 - The lecture scheduled on 24/4/2017 has been canceled

6/3/2017 - Please check with the lecture-schedule table for the updated room allocation

18/2/2017 - Lectures for the academic year 2016/2017 will start on 20/2/2017 - Please check with the lecture-schedule table

6/2/2017 - Results of the examination held on 1-2-2017

9/1/2017 - The examination scheduled on 10/1/2017 will be held at 9:30 AM - Room 33 (Via Eudossiana)

26/10/2016 - Results of the examination held on 24-10-2016

6/9/2016 - Results of the examination held on 2-9-2016

7/7/2016 - Results of the examination held on 1-7-2016

10/6/2016 - Results of the examination held on 6-6-2016

2/6/2016 - The examination scheduled for 6/6/2016 will start at 10:30 - Room 33 (via Eudossiana)

13/4/2016 - The lecture scheduled for 14/4/2016 will be run starting at 12:00 (rather than at 10:15)

25/3/2016 - Results of the examination held on 21-3-2016

29/2/2016 - The lecture schedule has been changed, please check with the schedule table

16/2/2016 - Results of the examination held on 5-2-2016

21/10/2015 - Results of the examination held on 19-10-2015

18/9/2015 - Results of the examination held on 17-9-2015

26/7/2015 - Results of the examination held on 22-7-2015

19/6/2015 - Results of the examination held on 16-6-2015

14/5/2015 - The specification of the software project to be developed as part of the examination is now available at this link.

29/4/2015 - The lecture scheduled on 30/4/2015 will start at 12:00 and will end at 13:30

25/3/2015 - The lecture scheduled on 26/3/2015 is canceled

25/2/2015 - Lectures starting today


Lecture schedule (starting on 20/2/2017)

Monday (14:00-16:00 Room A2 A6 A4)

Friday (10:00-13:00 Room A2 A3)


Course objectives and examination rules

The 'Advanced Operating Systems and Virtualization' course aims at presenting advanced design/implementation methods and techniques for modern operating systems, including the support for sytem virtualization. The topics dealt with by the course are bound to case studies oriented to LINUX systems and x86 compliant processors. The course requires basic knowledge on the structure and functionalities of operating systems, and knowledge on C/ASM programming.

The examination consists of a set of questions and additionally requires the development of software sub-systems to be embedded within the LINUX kernel whose specification for academic year 2016/2017 can be found at this link.


References

Useful links


List of planned topics (2016-2017)


Slides and software

Slides Software protection, system call mechanisms and kernel hacking basics (with case study on LINUX) - download
Software examples

- Example of user code ASM usage download

- Example of user level C/ASM mixed code download

- Example of VDSO access and analysis download

- Example of ASM and system traps usage download

- Baseline example of system-call-table dynamic hacking download

Slides Kernel level memory management (with case study on LINUX) - download
Software examples

- Virtual to physical mapping discover via module download

- Message log/deliver service via module download

- Basic NUMA performance test download

Slides

Addendum A - download

Slides

LINUX kernel audit/debugging - download

Slides

LINUX modules - download

Software examples

- System-call-table dynamic hacking plus memory management plus module params download

Software examples

- Page table audit download

Software examples

- Modules cross referencing download

Slides

Advanced task/thread management concepts (with case study on LINUX) - download

Software examples

- Basic usage of work queues download

Software examples

- Basic usage of wait queues download

Software examples

- Basic usage of per thread wait queues and individual thread awake download

Software examples

- A sleep/wakeup queue download

Software examples

- A full sleep/wakeup queue download

Software examples

- Basic usage of kernel threads download

Software examples

- An amortized constant time sleep/wakeup queue download

Software examples

- A process wide mutex download

Slides

Advanced trap/interrupt architectures - download

Slides

Management of caching components (data cache and TLB) - download

Software examples

- Linux implementation of a page fault monitoring service via modules download

Software examples

- Master/slave synchronization and kernel code patch simulation download

Software examples

- Management of TLB/Cache download

Slides

Virtual file systems internals (with case study on Linux) - download

Software examples

- Linux implementation of a device file for a broadcas service on ttys (via modules) - download

Software examples

- A basic proc file - download

Software examples

- A device file for hitting processes download

Software examples

NEW

- Stdin interceptor on bash download
Slides

Security download

Software examples

- Software exploits (setup for Linux 2.6.5-7.282-smp i686 i386 GNU/Linux - gcc 3.3.3) download

Software examples

NEW

- A basic trojan-horse for the ls command download
Software examples

NEW

- Example of UID/EUID management download
Software examples

NEW

- Software exploits (setup for Linux 3-16-7 x86_64 GNU/Linux - gcc 4.3.8) download
Software examples

NEW

- A Linux reference monitor download