In this paper, the authors aim at providing a complete survey of distributed operating systems. This paper also explains in detail about various key design issues involved in the building of such system. A distributed operating system is an software over a collection of independent, networked, communicating and physically separate computational nodes. Each individual node holds a specific software subset of the global aggregate operating system. Each subset is a composite of two distinct service provisioners.