This course examines the role of operating systems as the interface between the hardware, the software and the users of a computer system. It explores the concepts such as processes and threads, file systems, virtual memory, interrupt handling, virtualization and security.