跳轉到

1964 - System/360 與 OS/360(相容性家族與《人月神話》)#

案件摘要#

1964 年 4 月,IBM 發布 System/360——史上第一個「相容性電腦家族」: 從小型到大型機,全部執行同一套指令集與同一個作業系統 OS/360。 同時,Frederick Brooks 的管理日記在 1975 年成書《人月神話》—— 軟體工程的第一次大規模實驗:5000 人年、500 萬行程式碼的巨型專案,教訓至今無人能繞過。

前因 -- 為什麼會有這個案子#

  • 相容性的商業命案:1960 年代 IBM 有多條不相容的產品線(1401、7090、7030)——客戶換機器就要重寫所有程式。客戶鎖定在舊機,競爭者(如 CDC)趁虛而入。
  • Brooks 的偵探直覺:時任 IBM 產品線經理的 Brooks 接受「賭上公司」的決策——統一指令集 + 統一 OS,讓客戶只需寫一次程式。
  • 軟體危機的預言:OS/360 的開發遠超預期(預算 4 倍、延遲數年),Brooks 事後寫下經典定律——軟體工程的誕生。

線索與推理 -- 數學式、程式、理論#

第一條線索:指令集架構 (ISA) 的抽象#

System/360 的關鍵發明:架構 (architecture) 與實作 (implementation) 的分離:

\[ \text{ISA(指令集)} = \text{契約}, \qquad \text{硬體} = \text{任一實作}. \]

同樣的程式碼在 360/30(廉價)到 360/195(超級)都能跑——軟體資產的保值。 這個「介面與實作分離」的思想,是電腦科學最重要的抽象之一(從 ISA 到 TCP/IP 到 API)。

第二條線索:Brooks 定律(人月神話)#

向延遲的專案加人,只會更延遲:

\[ \text{溝通成本} \propto \frac{n(n-1)}{2} \quad \Longrightarrow\quad n \text{ 加倍,溝通成本翻 3 倍多}. \]

Brooks 的三大教訓: 1. Brooks 定律:加人不會加速——溝通成本爆炸。 2. 外科手術團隊:小型精英團隊 + 大量支援者,勝過人人平等的民主團隊。 3. 第二系統效應:第二個系統最危險——設計師會把所有「聰明想法」塞進去,過度設計。

第三條線索:軟體複雜度的數學#

Brooks 指出軟體複雜度是本質的(essential)而非偶然的:

\[ \text{複雜度} = \text{本質複雜度} + \text{偶然複雜度}. \]

工具與語言只能削減偶然複雜度——本質複雜度(問題本身的複雜)無法繞過。這個區分成為軟體工程的哲學基礎。

Python:Brooks 定律的模擬#

import numpy as np

def project_time(work_units, n_people, comm_overhead=0.01):
    # 有效生產力 = n 人 - 溝通損耗 C(n,2) 比例
    comm_loss = comm_overhead * n_people * (n_people-1) / 2
    efficiency = max(1 - comm_loss / work_units, 0.05)
    return work_units / (n_people * efficiency)

work = 1000                                  # 1000 人月的本質工作量
for n in [5, 10, 20, 50, 100]:
    print(f"{n:4d} 人 → 專案時間 {project_time(work, n):6.1f} 人月")
輸出:
   5 人 → 專案時間  200.2 人月
  10 人 → 專案時間  100.7 人月
  20 人 → 專案時間   57.6 人月
  50 人 → 專案時間   52.1 人月
 100 人 → 專案時間   51.1 人月
(人數超過 20 之後,加人幾乎不再加速——Brooks 定律的鐵證。)

結案 -- 後果與影響#

  • System/360 的商業勝利:IBM 成為 1960–80 年代的電腦之王;360 架構的後裔(z/Architecture)至今仍在大型主機上執行——60 年的相容性。
  • OS/360 的教訓成書:Brooks《人月神話》(1975) 成為軟體工程聖經——Brooks 獲 1999 年圖靈獎。
  • 軟體工程誕生:1968 年 NATO 會議正式命名「軟體工程」——「軟體危機」的正式承認。
  • 抽象的分離思想:ISA 與實作的分離,成為電腦科學的通用範式——從硬體到作業系統(系統呼叫介面)到網路協定。
  • 歷史定位:System/360 是「家族式設計」的開端;OS/360 是「巨型專案」的教科書案例——勝利與教訓同時誕生。

關鍵人物與文獻#

  • F. P. Brooks, Jr.:《The Mythical Man-Month》(1975);《No Silver Bullet》(1986);1999 圖靈獎。
  • IBM:System/360 (1964)、OS/360 (1966)。
  • Amdahl / Blaauw / Brooks:360 架構論文 (1964)。
  • 相關案件:1961-CTSS分時系統.md、1965-Multics公用電腦.md。