Distributed & Networked Operating Systems

a distributed operating system

Imagine a big kitchen with twenty cooks, twenty stoves, and twenty fridges spread across a building, all wired together. Now imagine you walk up, place one order, and it just gets done — you never have to know which cook chopped the onions or which fridge held the eggs. A distributed operating system tries to make a whole collection of separate computers, connected by a network, feel like one single machine. You log in once, run a program, open a file, and the system quietly decides which physical machine actually does the work and where the data actually lives.

The defining promise is transparency: the user (and ideally the programmer too) should not have to care where things are. Location transparency means you name a file or service without knowing which node holds it. Migration transparency means a running job can be moved to a less busy machine without the user noticing. Replication transparency means several copies of data can exist for safety, but you see just one. To deliver this, the OS spreads its own pieces — scheduling, the file system, naming, communication — across many nodes that cooperate by sending messages, because they share no memory and no central clock.

Why it matters, and the honest caveat: a true distributed OS is genuinely hard and rare. Most systems you actually use are looser than this — they are network operating systems (you explicitly log into machine A, then copy a file to machine B) plus middleware glued on top. The reason the full one-machine illusion is so hard is the same reason this whole field is hard: there is no shared memory and no shared clock, messages take time and can be lost, and partial failure (some nodes crash while others keep running) is normal rather than exceptional.

On an ideal distributed OS you type a command to run a heavy computation. Without telling you, the system picks a spare machine across the room, ships your program there, runs it, and hands back the result — to you it looked exactly like running it locally. Compare this to a network OS, where you would have to manually ssh into that machine first and copy your files over yourself.

The dream: many machines, one apparent computer. In practice few systems fully achieve it.

Do not confuse a distributed OS with cloud computing or virtualization: those are about running many isolated machines on shared hardware, whereas a distributed OS is about making many real machines look like one.

Also called
DOS (in this sense)分散式作業系統