This course examines the design, implementation, and analysis of selected aspects of operating systems with a focus on networked systems and the impact of emerging hardware such as persistent memory. It covers topics such as: resource naming and discovery, scheduling, and load balancing; fault-tolerance, availability, and persistence; distributed communication models; and storage. We will explore these topics in the context of a variety of system designs including local and distributed systems. This is a seminar-style course based on occasional lectures, paper presentations by students, and discussions of readings. The focus is on the principles used in the design of networked systems and algorithms and data structures used in their implementation. Readings include case studies, seminal papers, and recent conference and journal articles.