This course willintroduce design principles and implementation methodologies. On the theoryside, this course will present the basic concept of operating systems, theirtaxonomy, and the evolution of classical operating systems. It will focus onthe three important functionalities of an operating system: virtualization,concurrency, and persistence. Students will learn how the operating system managesCPU, memory, and I/O and filesystems. On the practice side, the course willguide the students to build an educational operating system from scratch. Theywill learn how to handle interrupts, manage physical memory and virtual memory,manage processes, and schedule processes and build file systems.On completion ofthis course, the student should be able to master the following knowledge andskills: Process management:understand in depth the creation and termination of a process, understand statetransition in the life cycle of a process, understand context switch, befamiliar with common process scheduling algorithms, master the theory andpractice of inter-process synchronization and communication, be familiar withdeadlock prevention and avoidance algorithms. The students should be able toimplement simple process management and scheduling algorithm in the educationaloperating system kernel. Memory management:be familiar with various memory management methods, understand the concept ofvirtual memory, demand paging, and address translation. The students should beable to implement simple page replacement algorithm in the educationaloperating system kernel. I/O management: befamiliar with I/O device management and I/O operations, understand the managementof storage and common organization of file systems. The students should be ableto improve file system implementation in the educational operating systemkernel.