CS 491: Secure Operating System Design and Implementation

This course will cover techniques to design and implement an Operating Systems (OS). In particular, the focus of the course will be Ethos, an OS which is being constructed at UIC. The goal of Ethos is to create a more secure platform for computing.

Ethos is implemented on top of the Xen virtual machine, which provides advantages for implementing and fielding Ethos.

News

  • For a general introduction to the structure of OS, see Maurice Bach.

Workload and needed background

This is an advanced course in Operating System design and implementation. Students are expected to have a solid background in OS, to be strong programmers, and to know well both C and the Unix tool chain (gcc, ld, ...).

Course work

The course work consists of:

  • Programming projects, including a final project
  • Presentations
  • test and final

Tests will cover conceptual issues from kernel design and programming techniques covered.

Academic integrity

Please note that 491 is the most rigorous course in the department. It is an enormous amount of work and requires a strong background. Do not take the course unless you are prepared to meet its challenge.

Students who are caught cheating will immediately fail the course, and have the cheating recorded in their record. For 1st year graduate students (because this is a 5 hour course), this usually results in expulsion from the program. Students who already have been caught cheating will go through disciplinary hearings, with the goal of having them expelled from the university.

Students who fail to demonstrate on tests an understanding of the programs they have handed in will fail the course.

You are not to show your program to anyone nor to look at anyone else's program. You may discuss programming concepts but only in general term.

Covered topics

This course covers network programming and systems programming from the operating system viewpoint. Special emphasis is given on standards based APIs, with explanation of typical interfaces.

Syllabus

  1. Operating Systems OS Kernel, Monitor Model, Concurency, System calls.
  2. Virtual Machines Type 1 and Type 2 VMs, Requirements for Virtualization, Paravirtualization, VM implementation techniques.
  3. OS Layers
  4. Ethos coding rules Rules for code consistency, avoiding security holes, concurrency issues,
  5. Process management fork, wait, exec
  6. File systems read, write, open, create, remove.
  7. Inter-Process Communication message passing, rpc.
  8. Networking network stacks.
  9. Authorization (Access controls) Authorization properties to be enforced
  10. Authentication
  11. OS pitfalls
  12. user space issues

Recommended Texts

    Maurice J. Bach. The Design of the UNIX Operating System, Prentice-Hall, 1986.