分散式與網路作業系統

網路作業系統(network operating system)

想像一間辦公室,每個人都有自己的桌子、自己的檔案櫃、自己的鑰匙——但有一條共用的走廊把所有辦公室連起來。如果你想要同事的某份文件,你就走到走廊另一頭、敲門、開口要。網路作業系統運作起來就像這間辦公室。每台電腦都是完全獨立、自主的機器,各有自己的作業系統,但它們以網路相連,所以當你明確開口時,就能存取到別台機器上的檔案與服務。

關鍵詞是「明確」。在網路作業系統上,你始終清楚別的機器是獨立存在的東西。要使用遠端機器,你通常得用名稱登入它(例如用遠端登入程式),或用一個指明來源與目的機器的指令把檔案複製過去,或把遠端資料夾掛載進來、讓它出現在你自己的目錄樹裡。這些機器並不假裝成一台電腦;每台各自保有自己的使用者帳號、自己的檔案、自己的時鐘,而把它們串起來的工作是由你這個使用者(或你的程式)來做。這是一種「鬆耦合」的安排:合作是可能的,但既非必要、也並不隱藏。

為什麼重要:你在現實中遇到的幾乎每一種配置——家用網路、辦公室、乃至網際網路本身——都是網路作業系統的安排,而不是真正的分散式作業系統。它是這個光譜上實際、可達成的那個點。代價是它不提供任何透明性:你必須知道哪台機器有什麼、失效要自己處理、也沒有單一的系統映像。這份誠實正是重點:它之所以比較簡單又穩健,正是因為每個節點都保持自主。

你執行 scp report.pdf alice@build-server:/home/alice/ 把檔案複製到另一台機器。你必須指明使用者、機器、路徑,因為沒有任何東西假裝它們是同一個系統。隔天 build-server 當機了;你只會收到一個連線錯誤、然後自己想辦法處理——這裡沒有自動接手(failover)這回事。

自主的機器,明確的存取。你始終知道自己正在跟哪一台機器對話。

要記住的對比:網路作業系統讓網路是可見的、並要你自己管理;分散式作業系統則把網路藏起來、替你管理。真實系統落在這條光譜的某處,通常比較靠近網路作業系統那一端。

又称
NOS網路作業系統loosely coupled system