This document provides an introduction to distributed systems. It discusses why distributed systems are developed, defines what a distributed system is, and provides examples. It then compares different types of distributed systems and networked operating systems. The rest of the document outlines various concepts, issues, and algorithms related to distributed systems, including advantages and disadvantages over centralized systems, software concepts, mutual exclusion, synchronization, and clock synchronization.