This is a commonly asked question among students. I think part of the confusion comes from mixing terms from academia specially operating systems courses with software industry terms such as cloud computing and big data. Network operating systems and distributed operating systems are fundamentally different concepts.
Let us see what the difference is.
Network operating system is not dramatically different from a single processor operating system. We can think of it as a single processor operating system with the addition of network interface, drivers and applications to enable remote login, remote file access, resource sharing, etc. This addition is not going to fundamentally change the structure of the underlying operating system. On the other hand, distributed operating system is more complicated than a single processor operating system. In other words, network operating system cannot be converted to a distributed operating system by simply adding extra code. A distributed operating system has the ability to run programs on multiple computers. This is not a trivial task as it requires sophisticated scheduling support to facilitate true parallelism. This is the core difference between the two. I think many of us are familiar with the first type because that is what we use most of the time (ex. Windows, Linux). With that said, let us summarize the main differences between network operating system and distributed operating system.
Network operating system vs distributed operating system
In the table below, each row contrasts network operating system (NOS) and distributed operating system (DOS not MS DOS of course) based on a given property. If you pay attention you will notice that all these differences are derived from the main difference we just mentioned earlier in the introduction.
How the user sees the system
A collection of independent but connected computers
Single system wide image but not individual computers
Computer selection for running programs
User manually selects a computer
System selects computers dynamically and automatically
Location and resource access
User has to know where the resource is such as a file or printer
System keeps track of that
Manual similar to the previous point
Automatic by the system
Transparency which is another way to describe how the user sees the system
Required for example the system hides the fact that multiple computers are running user program
Underlying operating system
Different machines may have different OS
Single system wide
Degree of autonomy
Higher because it is up to the user
Less because it is up to the system
High because that is part of the design goals
Messages or shared memory
Each computer manages it's local resources
Global Central or distributed
Yes you just add more computers
No or moderate
Openness which is the ability to update parts of the system by users
Difference between distributed operating system and cloud computing
This article is not the right venue to discuss cloud computing in details. For more information about that you may refer to other online resources.
The differences that we just discussed earlier were confusing enough to start with. Adding cloud computing to the mix makes it even more confusing so let us clarify that as well. Cloud computing services whether it is compute (ex. Hadoop, Spark) or storage (ex. Cassandra, S3) are implemented using many instances of normal network operating systems such as Linux and Windows. In other words they are not based on distributed operating systems. So how storage and compute is distributed then? The short answer is they are simply implemented in software. If you take Hadoop as an example, it implements a distributed file system and the compute part is distributed using map reduce programming model. I hope the difference is clear now.
Network operating system refers to independent single operating system computers connected via network communication through files. These are the systems we are all familiar with such as Linux and Windows.
Distributed operating systems run programs on multiple computers in a true parallism manner without the awareness of the user which requires high degree of OS design sophistication.
Cloud computing is not the same as distributed operating systems. Cloud computing uses many instances of normal network operating systems and distribution is implemented in software.
Thanks for reading. For questions, corrections or feedback, please use the comments section section below.