Difference between network operating system and distributed operating system
Introduction
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.
Property | NOS | DOS |
---|---|---|
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 |
File placement | Manual similar to the previous point | Automatic by the system |
Transparency which is another way to describe how the user sees the system | Not required | 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 |
Fault tolerance | Little | High because that is part of the design goals |
Communication method | Files | Messages or shared memory |
Resource management | Each computer manages it's local resources | Global Central or distributed |
Scalability | Yes you just add more computers | No or moderate |
Openness which is the ability to update parts of the system by users | Yes | No |
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.
Summary
- 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.
Difference between network operating system and distributed operating system PDF
You can find this article in PDF format here
Thanks for reading. For questions, corrections or feedback, please use the comments section below.
About Author
Mohammed Abualrob
Software Engineer @ Cisco
That is good