The course provides an intensive discussion of the concepts, theories, and components that serve as the basis for the design of classical and modern operating systems. Topics include process and memory management, process synchronization, and deadlocks. Implementations and case studies of different kind of operating systems are also covered in this course (i.e. Windows, Linux, macOS)