CSE 598 Secure Microkernel Design - Spring 2025


Course description

The partitioning of computing systems into layers originates from the need for abstraction. Abstraction-based design enables system designers to cope with the ever-increasing complexity of the computer system. One of the benefits that abstraction brings into the design fold is the principle of separation of concerns. However, the abstraction has also failed to establish strong security guarantees across these layers. It sometimes removes or misses important contextual or security-related information. This course links together in a very practical way for students three adjacent layers of the computing abstraction stack - i.e., compilation, operating system, and CPU architecture by examining design principles of secure microkernels. Microkernels have many advantages. Compared to monolithic kernels, they are more modular and customizable, provide better security - the minimality principle of microkernels is a direct consequence of the principle of least privilege, and more robust - fewer crashes. The key challenge thus far with microkernels has been leveraging these properties while not sacrificing performance.

Objectives

Upon successful completion of this course, students will be able to:

  • demonstrate a deeper understanding of how the compiler, operating system, and the hardware interact – e.g., how a compute boots itself, how control is transferred to a bootloader, how an operating system controls hardware;
  • create new microkernel features for security and performance, add support for those features in compilation stage by using LLVM, and add new instructions to the ISA for native hardware support of those features;
  • explain basic concepts in the design and structure of operating systems, including kernel/user mode, system calls, preemptive multitasking, and monolithic/microkernel structure;
  • identify different scheduling algorithms and their suitability for different types of applications and explain the concept of virtual memory, the rationale for on-demand paging, and the role of working sets to avoid thrashing in a caching-based memory hierarchy;
  • demonstrate understanding of fundamental concepts in file system design;
  • describe how security, process isolation, and reliability can be addressed at the operating system/microkernel level while minimizing security semantic gaps between the compilation, operating system and hardware layers.

Textbook

No Required Book - Reading List

Term Office Hours

  • Prof. Kinsy: Monday 1:00pm - 2:00pm, Wednesday 1:00pm - 2:00pm, and by appointment.