21/11/2024 - A homework suggestion deadling with the implementation of a blocking queuing service for thread management has been posted at this link
28/10/2024 - Winter examinations will be held on January 23 2025 (afternoon) and on February 27 2025 (afternoon)
16/10/2024 - A homework suggestion deadling with an alternative TLS implementation has been posted at this link.
Day | Time | Room |
---|---|---|
Monday | 11:30-13:15 | Room B13 |
Wednesday | 11:30-13:15 | Room B13 |
Thursday | 14:00-15:45 | Room B5 |
The 'Advanced Operating Systems and System Security' course aims at presenting advanced design/implementation methods and techniques for modern operating systems. It will also provide insights on actual hardware operations in modern processors (including implicit and explicit parallelism) and how these impact software design approaches.
The topics dealt with by the course are bound to case studies oriented to Linux systems and x86 compliant processors. A strong focus on system-level security aspects will be made, which will include the analysis of the correlation between hardware and software as well as advanced methods and techniques for system security. The course requires basic knowledge on the structure and functionalities of operating systems, and knowledge on C/ASM programming.
NOTE: Why Linux? Why x86?
The lecture flow will be based on presenting concepts in combination with software/running examples. Both the slides and the software examples will be made available while delivering the course, clearly in advance to discussing them at any lecture. The slides as well as the software examples can be accessed and downloaded from links posted in a bottom section of this web page.
The examination consists of a written test (where a set of questions will be proposed) and additionally requires the development of software sub-systems (a project) to be embedded within the Linux kernel, whose specification for the academic year 2024/2025 will be posted during the course delivery. Projects are individual and each student is supposed to finalize both parts of the examination within the same academic year. The delivery of the software project does not need to coincide with the scheduled examination dates. Rather, students can deliver their projects at any student reception (see this link).
As for the evaluation, the first part (questions and answers) accounts for 18 points, while the project accounts for 12 points. In any case, both parts of the examination have thresholds for their acceptance. The thresholds are the following ones: 11 points for the first part and 7 for the project. In the event of an exceptionally well-done project and/or exceptionally well-replied questions, a student who accumulates 30 points can be awarded with 'laude'.
Even though the above references and links are provided, I must alert students that no unique hand-book can fully cover the presented topics (and/or the way of presenting them). Hope this will be an added value to the course, rather than a limitation. Please come to any available student reception as soon as any doubt, or the need for whatever clarification, arises.
Topic | Slides | Software Examples | Latest Update |
---|---|---|---|
Hardware insights | Download | Download | 24/9/2024 |
Kernel programming basics | Download | Download | 13/10/2024 |
Kernel level memory management | Download | Download | 27/10/2024 |
Cross ring data move | Download | Download | 5/11/2024 |
Linux modules | Download | Download | 10/11/2024 |
Kernel level task management | Download | Download | 17/11/2024 |