This document discusses distributed computing fundamentals and distributed operating system design. It covers motivations for distributed computing like availability of inexpensive processors and networks. It describes types of interconnected multiprocessors like tightly and loosely coupled systems. It outlines different distributed system models including minicomputer, workstation, workstation-server, processor pool, and hybrid models. It discusses advantages of distributed systems like applications being inherently distributable, information and resource sharing, better price-performance, higher reliability, and flexibility. It defines what a distributed operating system is and covers challenges in distributed OS design like lack of a global state and asynchronous message passing.